导入模块--python

导入模块--python,第1张

导入模块--python 导入模块的方式
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__)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3973579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存