import random result=random.randint(1,6) print(result)导入模块中相关数据的方式
from random import randint result=randint(1,6) print(result)关于调用模块的函数
python中的模块(.py文件)在创建之初会自动加载一些内建变量,__name__就是其中之一。Python模块中通常会定义很多变量和函数,这些变量和函数相当于模块中的一个功能,模块被导入到别的文件中,可以调用这些变量和函数。那么这时 name 的作用就彰显了,它可以标识模块的名字,可以显示一个模块的某功能是被自己执行还是被别的文件调用执行,假设模块A、B,模块A自己定义了功能C,模块B调用模块A,现在功能C被执行了:
如果C被A自己执行,也就是说模块执行了自己定义的功能,那么 name==‘main’
如果C被B调用执行,也就是说当前模块调用执行了别的模块的功能,那么__name__==‘A’(被调用模块的名字)
其实换一种说法也就是表示当前程序运行在哪一个模块中
Mymath.py
def add(a,b): """ 输出俩个数的和 :return: a + b """ return a+b def sub(a,b): """ 输出俩个数的差 :return: a-b """ return a-b def mul(a,b): """ 输出俩个数的积 :return: a * b """ return a*b def div(a,b): """ 输出俩个数的商 :return: a / b """ return a/b if __name__=="__main__": a=10 b=2 print(f"和为{add(a,b)}") print(f"和为{sub(a,b)}") print(f"和为{mul(a,b)}") print(f"和为{div(a,b)}") print(__name__)
new3.py
import Mymath c=2 d=4 print(Mymath.add(c,d))
from Mymath import add,div c=2 d=4 print(add(c,d)) print(div(c,d))
from Mymath import * c=2 d=4 print(add(c,d)) print(div(c,d)) print(mul(c,d)) print(sub(c,d))
from Mymath import * 默认导入模块中所有的方法
但是如果在模块中手动添加一个全局变量,*号就不是默认导入全部方法了,而是导入手动添加的全局变量包含的方法
__all__=[] def add(a,b): """ 输出俩个数的和 :return: a + b """ return a+b def sub(a,b): """ 输出俩个数的差 :return: a-b """ return a-b def mul(a,b): """ 输出俩个数的积 :return: a * b """ return a*b def div(a,b): """ 输出俩个数的商 :return: a / b """ return a/b if __name__=="__main__": a=10 b=2 print(f"和为{add(a,b)}") print(f"和为{sub(a,b)}") print(f"和为{mul(a,b)}") print(f"和为{div(a,b)}") print(__name__)
from Mymath import * c=2 d=4 print(add(c,d)) print(div(c,d)) print(mul(c,d)) print(sub(c,d))
结果为:
Traceback (most recent call last):
File “C:/Users/py/PycharmProjects/pythonProject/new3.py”, line 4, in
print(add(c,d))
NameError: name ‘add’ is not defined
Process finished with exit code 1
当把所有的方法填入手动填写的列表中,则可以正常调用
__all__=["add",'sub',"mul",'div'] def add(a,b): """ 输出俩个数的和 :return: a + b """ return a+b def sub(a,b): """ 输出俩个数的差 :return: a-b """ return a-b def mul(a,b): """ 输出俩个数的积 :return: a * b """ return a*b def div(a,b): """ 输出俩个数的商 :return: a / b """ return a/b if __name__=="__main__": a=10 b=2 print(f"和为{add(a,b)}") print(f"和为{sub(a,b)}") print(f"和为{mul(a,b)}") print(f"和为{div(a,b)}") print(__name__)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)