dunders__ 与wonder_
- 在Python中,一个名字的前缀和后缀为双下划线,称为“ dunder name"
由于 Python中大量使用了双下划线,它们统称为“ dunders” - 还有一个约定是使用单个下划线字符作为某些变量名的前缀。一些 Python程序员把有单下划线前缀的名字称为“ wonder”(“ one underscore”的简写)。
例如,__name__ 值由 Python解释器维护,在程序代码中的任何地方使用这个值时,它会设置为当前活动模块的名字(指出当前活动的命名空间)
下面的代码在很多Python程序中出现
if __name__ == '__main__':
...
这个语句用于判断当前的活动命名空间是否为__main__ (从而在不同情况下执行不同操作):
- 如果代码直接由 Python执行,活动命名空间是__main__, .py中的这个if语句会返回True
- 如果程序作为一个模块导入,__name__的值就是所导入的模块的名字,if语句返回False
函数修饰符@
引入一个新的 Python语法:修饰符( decorator),其灵感来源于Java的注解语法
- 修饰符有一个
@ 前缀 - 本质上讲,修饰符允许你根据需要为已有的一些代码增加额外的行为。修饰符不仅可以用于函数,也可以用来修饰类
- 但修饰符还是主要用来修饰函数,所以大多数 Python程序员把它们称为函数修饰符。
- 函数修饰符可以调整一个现有函数的行为,而无需修改这个函数的代码(函数得到修饰)
- Python提供了内置修饰符,其他一些第三方模块提供修饰符,用户也能自定义修饰符
例如,使用第三方Flask模块的route修饰符 @app.route('/') 这里,URL"/"将与下一行代码中定义的函数关联,当一个指向“/”URL的请求到达服务器时, route修饰符会安排Flask web服务器调用这个函数,并将函数输出返回给服务器。
允许有结尾的逗号,
Python中,调用函数或创建列表时,结尾括号前的逗号是可选的 结尾的逗号能够极大的方便我们扩展参数或导入项的列表:将各个参数单独放在一行上,始终添加结尾的逗号
例如下面的写法在Python中是允许的
self.call(
1,
True,
"hi",
)
|