Tencent's Python coding specification

The world of naked eyes 2020-11-17 12:59:50
tencent python coding specification


Copyright notice : This paper is about CSDN Blogger 「 Tianyuan prodigal son 」 Link to the original text :https://blog.csdn.net/xufive/article/details/84957425

python Composition of documents

For the sake of description , On the first one demo

#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Usually here is a description of this document (docstring), Half a full stop 、 At the end of a question mark or exclamation point !
There should be a blank line before this line , Continue to complete the instructions for this document
If the document description can end in one line , The last three double quotes don't need to wrap ; otherwise , Just like this
"""
import os, time
import datetime
import math
import numpy as np
import xlrd, xlwt, xlutils
import youth_mongodb
import youth_curl
BASE_PATH = r"d:\YouthGit"
LOG_FILE = u" Run log .txt"
class GameRoom(object):
""" Against the office """
def __init__(self, name, limit=100, **kwds):
""" Constructors !
name The name of the office
limit The maximum number of people
kwds Parameter Dictionary
"""
pass
def craete_and_start():
""" Create and start the matchmaking room """
pass
if __name__ == '__main__':
# Open the game service
start()

Linux On the platform , One python The source code file should consist of the following parts .Windows On the platform , The first item can be omitted .

  1. The interpreter declares
  2. Code format statement
  3. Module comments or document strings
  4. Module import
  5. Constant and global variable declarations
  6. Top level definition ( Function or class definition )
  7. Execute code

Code format statement

Usually , Encoding format declaration is required . If python The source file does not declare the encoding format ,python The interpreter will default to ASCII code , Once the source file contains non ASCII Encoded character ,python The interpreter will report an error . With UTF-8 For example , The following two kinds of encoding format statements are in line with the rules .

# -*- coding: utf-8 -*-
# coding = utf-8

I've been UTF-8 Coding format , I like to use the first statement .

Windows On the platform , The encoding format declaration must be located in python The first line of the document .Linux On the platform , The encoding format declaration is usually located in python The second line of the document , The first line is python Path declaration of the interpreter .

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Indent

Unified use 4 Space to indent . Never use tab, No more tab Mixed with Spaces . In the case of row joins , I usually use 4 Hanging indentation of spaces . for example :

var_dict = {
'name': 'xufive',
'mail': 'xufive@sdysit.com'
}

quotes

  • Natural language uses double quotation marks
  • The machine identification uses single quotation marks
  • Regular expressions use double quotes
  • docstring (docstring) Use three double quotes

notes

# There is a space after the number one , Paragraphs are separated by blank lines ( Also need to # Number ):

 # Block annotation
# Block annotation
#
# Block annotation
# Block annotation 

In line comments , Use at least two spaces to separate the statement :

age += 1 # Increase the age by one year 

The more important comment section , Use multiple equal signs to separate , Can be more eye-catching , Highlight the importance of :

 server= gogame(room, options)
# =====================================
# Please don't dump rubbish here !!!
# =====================================
if __name__ == '__main__':
server.run()

Blank line

  • Code format statement 、 Module import 、 Constant and global variable declarations 、 There are two lines between the top-level definition and the execution code
  • There are two empty lines between the top-level definitions , Empty a line between method definitions
  • Inside a function or method , You can empty a line where necessary to enhance the sense of rhythm , But we should avoid continuous empty lines

Space

  • One space on each side of a binary operator , The spaces on both sides of arithmetic operators can be used flexibly , But make sure both sides are consistent
  • Don't use commas 、 A semicolon 、 A colon is preceded by a space , But they should be followed by ( Except at the end of the line )
  • Function's argument list , There should be a space after the comma
  • Function's argument list , The default value is equal sign without spaces
  • After the left bracket , Don't add space before the right parenthesis
  • parameter list , There should be no space in front of the left bracket of the index or slice

docstring

Document string is package 、 modular 、 The first statement in a class or function . These strings can be passed through the object's __doc__ Members are automatically extracted , And be pydoc used . The use of double quotation marks for document string ("""). If the content of the document string cannot be written in one line , Start with a full stop 、 At the end of a question mark or exclamation point , Take a blank line , The closing triple double quotation mark must have a single line .

The import module

The import should always be at the top of the file , After module comments and document strings , Before module global variables and constants . Imports should be grouped from the most common to the least common , Leave a line blank between groups :

  1. Standard library import
  2. Third party library import
  3. The application specifies the import

The following import methods should be avoided :

from math import *

Naming specification

  • Modules should be named in lowercase as much as possible , Keep the initials in lowercase , Try not to underline
  • Class names use humps (CamelCase) Naming style , title case , Private classes can start with an underscore
  • All function names are lowercase , If there are more than one word , Separate... With underscores
  • Private functions can start with an underline
  • Try to lower the variable name , If there are more than one word , Separate... With underscores
  • Constants are in uppercase , If there are more than one word , Use an underline to separate
 Recommended reading :
【 Share with others 】 A guide to building a recommendation system from zero to one white paper .pdf( attach 48 Page download link )
【 blockbuster 】 Architecture evolution of ten million level intelligent recommendation system
Person in charge of Xiaohong bookshelf structure :Flink Application in Recommendation System ,25 page ppt
106 page 《Python Advanced 》 Chinese version ( Attached Download )
19 A year old college student is beginning to learn Python How to make the most popular music application after
After reading this article, there are gains ? Please forward to share with more people 

This article is from WeChat official account. - The world of naked eyes (find_world_fine)

The source and reprint of the original text are detailed in the text , If there is any infringement , Please contact the yunjia_community@tencent.com Delete .

Original publication time : 2020-11-12

Participation of this paper Tencent cloud media sharing plan , You are welcome to join us , share .

版权声明
本文为[The world of naked eyes]所创,转载请带上原文链接,感谢

  1. 利用Python爬虫获取招聘网站职位信息
  2. Using Python crawler to obtain job information of recruitment website
  3. Several highly rated Python libraries arrow, jsonpath, psutil and tenacity are recommended
  4. Python装饰器
  5. Python实现LDAP认证
  6. Python decorator
  7. Implementing LDAP authentication with Python
  8. Vscode configures Python development environment!
  9. In Python, how dare you say you can't log module? ️
  10. 我收藏的有关Python的电子书和资料
  11. python 中 lambda的一些tips
  12. python中字典的一些tips
  13. python 用生成器生成斐波那契数列
  14. python脚本转pyc踩了个坑。。。
  15. My collection of e-books and materials about Python
  16. Some tips of lambda in Python
  17. Some tips of dictionary in Python
  18. Using Python generator to generate Fibonacci sequence
  19. The conversion of Python script to PyC stepped on a pit...
  20. Python游戏开发,pygame模块,Python实现扫雷小游戏
  21. Python game development, pyGame module, python implementation of minesweeping games
  22. Python实用工具,email模块,Python实现邮件远程控制自己电脑
  23. Python utility, email module, python realizes mail remote control of its own computer
  24. 毫无头绪的自学Python,你可能连门槛都摸不到!【最佳学习路线】
  25. Python读取二进制文件代码方法解析
  26. Python字典的实现原理
  27. Without a clue, you may not even touch the threshold【 Best learning route]
  28. Parsing method of Python reading binary file code
  29. Implementation principle of Python dictionary
  30. You must know the function of pandas to parse JSON data - JSON_ normalize()
  31. Python实用案例,私人定制,Python自动化生成爱豆专属2021日历
  32. Python practical case, private customization, python automatic generation of Adu exclusive 2021 calendar
  33. 《Python实例》震惊了,用Python这么简单实现了聊天系统的脏话,广告检测
  34. "Python instance" was shocked and realized the dirty words and advertisement detection of the chat system in Python
  35. Convolutional neural network processing sequence for Python deep learning
  36. Python data structure and algorithm (1) -- enum type enum
  37. 超全大厂算法岗百问百答(推荐系统/机器学习/深度学习/C++/Spark/python)
  38. 【Python进阶】你真的明白NumPy中的ndarray吗?
  39. All questions and answers for algorithm posts of super large factories (recommended system / machine learning / deep learning / C + + / spark / Python)
  40. [advanced Python] do you really understand ndarray in numpy?
  41. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  42. [advanced Python] Python advanced column main readme: never forget the original intention and forge ahead
  43. python垃圾回收和缓存管理
  44. java调用Python程序
  45. java调用Python程序
  46. Python常用函数有哪些?Python基础入门课程
  47. Python garbage collection and cache management
  48. Java calling Python program
  49. Java calling Python program
  50. What functions are commonly used in Python? Introduction to Python Basics
  51. Python basic knowledge
  52. Anaconda5.2 安装 Python 库(MySQLdb)的方法
  53. Python实现对脑电数据情绪分析
  54. Anaconda 5.2 method of installing Python Library (mysqldb)
  55. Python implements emotion analysis of EEG data
  56. Master some advanced usage of Python in 30 seconds, which makes others envy it
  57. python爬取百度图片并对图片做一系列处理
  58. Python crawls Baidu pictures and does a series of processing on them
  59. python链接mysql数据库
  60. Python link MySQL database