@R星校长
第3
关:函数的使用范围:Python 作用域
在 Python 中,正常的函数和变量名是公开的(public
),是可以被直接引用的。比如abs()
、abc
、dir()
等。
类似__xxx__
这种格式的变量是特殊变量,允许被直接引用,但是会被用作特殊用途。比如__author__
、__name__
就是属于特殊变量。hello
模块定义的文档注释也可以用特殊变量__doc__
访问,我们自己编程定义的变量一般不会用这种变量名。
类似_xxx
和__xxx
这种格式的函数和变量就是非公开的(private
),不应该被直接引用。
补充:_xxx
的函数和变量是protected
,我们直接从外部访问不会产生异常。__xxx
的函数和变量是private
,我们直接从外部访问会报异常,我们要注意前缀符号的区别。
我们要注意用词的区别,我们说的private
函数和变量是“不应该”被直接引用,而不是“不能”被直接引用。这是因为在 Python 中并没有一种方法可以真正完全限制访问private
函数或变量。但是我们为了养成良好的编程习惯,是不应该引用private
函数或变量的。private
函数的作用是隐藏函数的内部逻辑,让函数有更好的封装性。例如:
def _private_1(name):