一、注释
确保对模块, 函数, 方法和行内注释使用正确的风格- 单行注释以 # 开头
# 这是一个注释 print("Hello, World!")
- 单引号(''')
#!/usr/bin/python3 ''' 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用三个单引号 ''' print("Hello, World!")
- 双引号(""")
#!/usr/bin/python3 """ 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用三个单引号 """ print("Hello, World!")
二、DIR
- 语法:dir([object])
- 说明:
- 当不传参数时,返回当前作用域内的变量、方法和定义的类型列表。
>>> dir() ['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'] >>> a = 10 #定义变量a >>> dir() #多了一个a ['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a']
- 当参数对象是模块时,返回模块的属性、方法列表。
>>> import math >>> math <module 'math' (built-in)> >>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
- 当参数对象是类时,返回类及其子类的属性、方法列表。
>>> class A: name = 'class' >>> a = A() >>> dir(a) #name是类A的属性,其他则是默认继承的object的属性、方法 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']
- 当对象定义了__dir__方法,则返回__dir__方法的结果
>>> class B: def __dir__(self): return ['name','age'] >>> b = B() >>> dir(b) #调用 __dir__方法 ['age', 'name']
- 当不传参数时,返回当前作用域内的变量、方法和定义的类型列表。
三、__doc__
将文档写在程序里,是LISP中的一个特色,Python也借鉴过。每个函数都是一个对象,每个函数对象都是有一个__doc__的属性,函数语句中,如果第一个表达式是一个string,这个函数的__doc__就是这个string,否则__doc__是None。>>> def testfun(): """ this function do nothing , just demostrate the use of the doc string . """ pass >>> testfun.__doc__ '\nthis function do nothing , just demostrate the use of the doc string .\n' >>> #pass 语句是空语句,什么也不干,就像C语言中的{} , 通过显示__doc__,我们可以查看一些内部函数的帮助信息 >>> " ".join.__doc__ 'S.join(iterable) -> str\n\nReturn a string which is the concatenation of the strings in the\niterable. The separator between elements is S.' >>>
四、help
- 语法:help([object])
- 说明:
- 在解释器交互界面,不传参数调用函数时,将激活内置的帮助系统,并进入帮助系统。在帮助系统内部输入模块、类、函数等名称时,将显示其使用说明,输入quit退出内置帮助系统,并返回交互界面。
>>> help() #不带参数 Welcome to Python 3.5's help utility! If this is your first time using Python, you should definitely check out the tutorial on the Internet at http://docs.python.org/3.5/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type "quit". To get a list of available modules, keywords, symbols, or topics, type "modules", "keywords", "symbols", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose name or summary contain a given string such as "spam", type "modules spam". #进入内置帮助系统 >>> 变成了 help> help> str #str的帮助信息 Help on class str in module builtins: class str(object) | str(object='') -> str | str(bytes_or_buffer[, encoding[, errors]]) -> str | | Create a new string object from the given object. If encoding or | errors is specified, then the object must expose a data buffer | that will be decoded using the given encoding and error handler. | Otherwise, returns the result of object.__str__() (if defined) | or repr(object). | encoding defaults to sys.getdefaultencoding(). | errors defaults to 'strict'. | | Methods defined here: | | __add__(self, value, /) | Return self+value. ................................ help> 1 #不存在的模块名、类名、函数名 No Python documentation found for '1'. Use help() to get the interactive help utility. Use help(str) for help on the str class. help> quit #退出内置帮助系统 You are now leaving help and returning to the Python interpreter. If you want to ask for help on a particular object directly from the interpreter, you can type "help(object)". Executing "help('string')" has the same effect as typing a particular string at the help> prompt. # 已退出内置帮助系统,返回交互界面 help> 变成 >>>
- 在解释器交互界面,传入参数调用函数时,将查找参数是否是模块名、类名、函数名,如果是将显示其使用说明。
>>> help(str) Help on class str in module builtins: class str(object) | str(object='') -> str | str(bytes_or_buffer[, encoding[, errors]]) -> str | | Create a new string object from the given object. If encoding or | errors is specified, then the object must expose a data buffer | that will be decoded using the given encoding and error handler. | Otherwise, returns the result of object.__str__() (if defined) | or repr(object). | encoding defaults to sys.getdefaultencoding(). | errors defaults to 'strict'. | | Methods defined here: | | __add__(self, value, /) | Return self+value. | ***************************
- 在解释器交互界面,不传参数调用函数时,将激活内置的帮助系统,并进入帮助系统。在帮助系统内部输入模块、类、函数等名称时,将显示其使用说明,输入quit退出内置帮助系统,并返回交互界面。