Python进阶(21)—模块的特殊属性

◎知识点

  1. 调用内置函数dir查看模块的所有属性

  2. 模块的特殊属性之__doc__

  3. 模块的特殊属性之__name__

  4. 模块内的数据访问控制之单下划线

  5. 模块内的数据访问控制之特殊属性__all__


◎脚本练习

▽ 调用内置函数dir查看模块的所有属性

"""
可以调用内置函数dir查看模块的所有属性

1、调用内置函数dir时模块作为参数
    当调用内置函数dir时如果模块作为参数,会返回指定模块的所有属性
    其中,以双下划线__开始和结尾的属性是模块的特殊属性
"""

import mod
print(dir(mod))


"""
2、调用内置函数dir时不带任何参数
    当调用内置函数dir时如果不带任何参数,会返回当前模块的局部作用域中的所有属性
"""

print(dir())

var = 56

def ff():
    print('ff被调用')

class SomeClass(object):
    pass

print(dir())

del var
print(dir())


▽ 模块的特殊属性之__doc__

"""
调用内置函数 dir 得到的模块的所有属性中,有一个特殊属性叫 __doc__,用于表示模块的文档字符串。

1、什么是模块的文档字符串(docstring)
    与函数的文档字符串类似,位于模块的第一行的字符串被称为模块的文档字符串,通常用三个引号表示。
    模块的文档字符串是对模块功能的简要描述
    
    在 PyCharm,模块的文档字符串用灰色显示。
    之所以称为"文档"字符串,是因为可以使用工具根据文档字符串自动地生成文档。
    
    应该养成编写文档字符串的习惯,以提高程序的可读性。
    打开标准库中的模块 base64.py 以查看其文档字符串。
"""

"""
2、访问模块的文档字符串
    通过模块的特殊属性__doc__可以访问模块的文档字符串
    调用内置函数help()得到的帮助信息中会包含模块的文档字符串
"""

print(__doc__)

import base64
print(base64.__doc__)

print(help(base64))


▽ 模块的特殊属性之__name__

"""
调用内置函数 dir 得到的模块所有属性中,有一个特殊属性叫 __name__


1、模块的特殊属性 __name__ 在不同情况下的取值
    (1) 对于被导入的模块,其特殊属性 __name__ 的值为模块名
    (2) 对于直接运行的模块,其特殊属性 __name__ 的值为 __main__

2、根据 __name__ 的值判断是否执行模块中的试代码
    对于模块中的测试代码,通常当直接运行模块时才需要执行,而当模块被导入时则不需要执行。因此,
    可以根据 __name__ 的值判断是否执行模块中的测试代码
"""


▽ 模块内的数据访问控制之单下划线

"""
    为了在某种程度上实现模块內的数据访问控制,可以在模块内的某些属性前添加单下划线_。这样,
    就无法使用语句"from 模块名 import *"导入相应的属性了,但是,使用语句"import 模块名"
    仍然可以导入相应的属性。
"""


▽ 模块内的数据访问控制之特殊属性__all__

"""
    为了在某种程度上实现模块内的数据访问控制,还可以在模块内定义特殊属性__all__。这样,
    使用语句"from 模块名 import *"只能导入特殊属性__all__中定义的属性,但是,
    使用语句"import 模块名"仍然可以导入所有的属性。
"""

"""
    当使用语句"from 模块名 import *"导入属性时,
    如果既在模块内的某个属性前添加了单下划线_,又将这个属性定义在模块内的特殊属性__all__中,
    那么__all__比单下划线具有更高的优先级
"""

Python进阶(21)—模块的特殊属性


◎脚本地址:https://github.com/anzhihe/learning/blob/master/python/practise/learn-python/python_advanced/module_attributes.py

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5445.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注