python 模块

扫码查看
"""
一个py文件就是一个模块
import 模块
from 模块 import 变量名 (不安全,不推荐)
from 模块 import 函数名 不安全,不推荐)
from 模块 import 类名 不安全,不推荐)


如果导入你自己的py模块的时候,Pycharm中模块名有大红线?
    选中模块所在目录—>右击鼠标—>Mark directory as—>Sources Root


import导入模块过程:
1、判断该模块是否被导入过,导入过,直接用,没导入过,新开辟一个内存,为该模块创建独立的名称空间
2、在新名称空间中,执行模块中的代码
3、创建模块名字,在当前模块可以使用模块名.模块中的变量、函数名、类名等
"""
# a.py
num = 10


def func():
    print("我是a.py文件中的func")


class Person:
    def __init__(self, name):
        self.name = name


print("我是a.py文件")
# b.py
import a


num = 20


def func():
    print("我是func")


print(a.num)
a.func()
per_obj = a.Person("lily")

执行结果:

我是a.py文件
10
我是a.py文件中的func
"判断该模块是否被导入过,导入过,直接用,没导入过,新开辟一个内存,为该模块创建独立的名称空间"
# a.py
num = 10


def func():
    print(f"我是a.py文件中的func,num={num}")


print("我是a.py文件")
# c.py
import a


a.num = 30
a.func()
# b.py
import a
import c


a.func()
a.num = 20
a.func()

执行的结果:

我是a.py文件
我是a.py文件中的func,num=30
我是a.py文件中的func,num=30
我是a.py文件中的func,num=20
"""不建议修改导入模块中的变量,以下是不建议的导入方式和操作"""
# a.py
num = 10


def func():
    print(f"我是a.py文件中的func,num={num}")


print("我是a.py文件")
# b.py
from a import num, func


print(num)
num = 20
func()
print(num)

执行结果:

我是a.py文件
10
我是a.py文件中的func,num=10
20
"""
if __name__ == '__main__':  # 程序的入口
    当做执行文件执行的时候,程序会执行这里
    当做模块被导入的时候,程序不会执行这里
"""
# a.py
num = 10


def func():
    print(f"我是a.py文件中的func,num={num}")


if __name__ == '__main__':  # 程序的入口
    print("我是a.py文件")
# b.py
import a

执行结果:空,不会打印出东西来。

"""
细说__name__
当作为执行文件执行的时候,__name__==__main__
当作模块被导入的时候,__name__==模块名
"""
# a.py
num = 10


def func():
    print(f"我是a.py文件中的func,num={num}")


if __name__ == '__main__':  # 程序的入口
    print("我是a.py文件")

print(__name__)

执行结果:

我是a.py文件
__main__
# b.py
import a

执行结果:

a
12-20 08:32
查看更多