常用:
模块引入:
import:
这个基本上与Java相同, 就不多说了
import模块只会被导入一次, 不会出现C++中的递归include的情况
通配符 *
如:
from modname import *
导入这个模块中的所有内容
from … import:
用于引用模块的一部分(如某个函数)
from modname import name1[, name2[, ... nameN]
与直接import的区别
所以首选from方法
__name__
属性
前头讲过了:
当模块直接运行自身时, __name__
==__main__
否则__name__
==模块名
, 如被其他模块import时
dir()
函数:
这玩意返回模块内定义的所有名称, 以一个字符串列表的形式返回:
print(dir(copy))
输出:
['Error', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_copy_dispatch', '_copy_immutable', '_deepcopy_atomic', '_deepcopy_dict', '_deepcopy_dispatch',
'_deepcopy_list', '_deepcopy_method', '_deepcopy_tuple', '_keep_alive', '_reconstruct', 'copy', 'deepcopy', 'dispatch_table', 'error']
如果没有给定参数, 则会列出当前文件中定义的所有名称:
print(dir())
输出:
['BasicContext', 'Clamped', 'Context', 'ConversionSyntax', 'Decimal', 'DecimalException', 'DecimalTuple', 'DefaultContext', 'DivisionByZero', 'DivisionImpossible', 'DivisionUndefined', 'ExtendedContext', 'FloatOperation', 'HAVE_CONTEXTVAR', 'HAVE_THREADS', 'Inexact', 'InvalidContext', 'InvalidOperation', 'MAX_EMAX', 'MAX_PREC', 'MIN_EMIN', 'MIN_ETINY', 'Overflow', 'ROUND_05UP', 'ROUND_CEILING', 'ROUND_DOWN', 'ROUND_FLOOR', 'ROUND_HALF_DOWN', 'ROUND_HALF_EVEN', 'ROUND_HALF_UP', 'ROUND_UP', 'Rounded', 'Subnormal', 'Underflow', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'classTest', 'copy', 'encode', 'f', 'fff', 'fibonacci', 'funFK', 'getcontext', 'localcontext', 'operator', 'parrot', 'random', 'raw_input', 're', 'setcontext', 'sqrt', 'sys']
包:
包的本质上就是一个文件目录, 即一个文件夹. 其满足:
-
一个目录中只有包含
__init__.py
的文件, 才会被视作一个包 -
目录的路径必须在sys.path中
-
包中还可以包含子目录, 可用于区分不同的功能&内容, 方便用户调用
访问时就直接使用
.
连接