‘‘‘
自定义模块
‘‘‘
age = 10
def f1():
print(‘hello‘)
# 测试函数,在开发阶段,对模块中的功能进行测试
def main():
print(age)
f1()
# 可以快速生成
if __name__ == ‘__main__‘:
main()
第一种方式在使用其中成员时,必须使用模块名作为前缀。不容易产生命名冲突。
# 使用import xxx 导入
import my_module
print(my_module.age)
第二种方式在使用其中成员时,不用使用模块名作为前缀,直接使用成员名即可。但是容易产生命名冲突。在后定义的成员生效(把前边的覆盖了)
from my_module import age
print(age)
给成员起别名,避免名称冲突。
# 使用别名避免命名冲突
from my_module import age as a
age = 1000
print(age) # 1000
print(a) # 10
给模块起别名,目的简化书写。
# 给模块起别名
import my_module as m
print(m.age) # 10
m.f1() # hello
默认情况下,所有的成员都会被导入。
__all__
是一个列表,用于表示本模块可以被外界使用的成员。元素是成员名的字符串。
# 使用__all__ 控制被导入的成员
__all__ = [‘age‘,‘age2‘]
age = 10
age2 = 20
age3 = 30
# 验证__all__控制的成员
from my_module import *
print(age) # 10
print(age2) # 20
print(age3) # 报错
__all__
只是对 from xxx import * 这种导入方式生效,其余的方式都不生效。
针对某个项目中的不同模块之间进行导入,称为相对导入。
只有一种模式:
from 相对路径 import xxx
相对路径:包含了点号的一个相对路径。
. 表示的是当前路径。
.. 表示的是父路径。
... 表示的是父路径的父路径
# 相对导入同一个项目下的模块
from ..z import zz # 容易向外界暴露zz模块
from ..z.zz import *0
此模块提供了和随机数获取相关的方法:
import random
# 获取 [0.0,1.0) 范围内的浮点数
print(random.random())
# 获取 [a,b) 范围内的浮点数
print(random.uniform(3,5))
# 获取[a,b]范围内的一个整数
print(random.randint(3,5))
# 把参数指定的数据中的元素打乱。参数必须是一个可变的数据类型。
lst = list(range(10))
random.shuffle(lst)
print(lst)
# 从x中随机抽取k个数据,组成一个列表返回。
t = (1,2,3)
t1 = random.sample(t,len(t))
print(t1)
原文:https://www.cnblogs.com/szheng/p/13199641.html