赞
踩
py
结尾的Python
源代码文件都是一个模块标识符
,需要符合标识符的命名规则全局变量、函数、类
都是可以提供给外界使用的工具import 模块名1,模块名2
上述导入方式不是python PEP8推荐的导入方式
import 模块名1
import 模块名2
在导入模块时,每个导入应该独占一行
通过模块名.
的方式使用模块
def sayhello():
print("this is module-test 01")
class Module01:
def __init__(self):
print("this is an object from Module01")
def sayhello():
print("this is module-test 02")
class Module02:
def __init__(self):
print("this is an object from Module02")
import module_test01
import module_test02
module_test01.sayhello()
module_test02.sayhello()
m1 = module_test01.Module01()
m2 = module_test02.Module02()
print(m1)
print(m2)
this is module-test 01
this is module-test 02
this is an object from Module01
this is an object from Module02
<module_test01.Module01 object at 0x00000293A4501700>
<module_test02.Module02 object at 0x00000293A4501730>
as
指定模块名import module_test01 as module1
import module_test02 as module2
module1.sayhello()
module2.sayhello()
m1 = module1.Module01()
m2 = module2.Module02()
this is module-test 01
this is module-test 02
this is an object from Module01
this is an object from Module02
<module_test01.Module01 object at 0x0000019EBD561850>
<module_test02.Module02 object at 0x0000019EBD561880>
全局变量、方法、类
,就可以使用from ... import
导入方法from 模块名 import 工具名
模块名.
的方式使用模块全局变量、方法、类
from module_test01 import sayhello
from module_test02 import Module02
sayhello()
m2 = Module02()
print(m2)
this is module-test 01
this is an object from Module02
<module_test02.Module02 object at 0x00000258371E0200>
from module_test01 import sayhello
from module_test02 import sayhello
from module_test02 import Module02
sayhello()
m2 = Module02()
print(m2)
this is module-test 02
this is an object from Module02
<module_test02.Module02 object at 0x000001AA0EFE16A0>
from module_test01 import sayhello
from module_test02 import sayhello as sayhello2
sayhello()
sayhello2()
this is module-test 01
this is module-test 02
from 模块名 import *
可以导入模块中的所有工具,并不用使用模块名.
的方式使用工具,这种方法不推荐,因为函数重名没有提示,不好排查问题
from module_test01 import *
sayhello()
m1 = Module01()
print(m1)
this is module-test 01
this is an object from Module01
<module_test01.Module01 object at 0x000002E28704B710>
在开发时,给模块起名,需要避免与系统中模块名称重复
import random
print(random.__file__)
输出结果
C:\Users\11\AppData\Local\Programs\Python\Python312\Lib\random.py
print("this is module_test01")
def sayhello():
print("this is module-test 01")
class Module01:
def __init__(self):
print("this is an object from Module01")
print("this is module_test02")
def sayhello():
print("this is module-test 02")
class Module02:
def __init__(self):
print("this is an object from Module02")
import module_test01
import module_test02
this is module_test01
this is module_test02
__name__
属性值,来确定是当前模块还是被导入的模块__name__
属性可以做到,测试代模块的代码只在测试情况下运行,而在被导入时不被执行
__name__
是python的内置属性,记录一个字符串__name__
属性记录模块名__name__ = '__main__'
if __name__ == '__main__':
print("this is module_test01")
def sayhello():
print("this is module-test 01")
class Module01:
def __init__(self):
print("this is an object from Module01")
if __name__ == '__main__':
print("this is module_test02")
def sayhello():
print("this is module-test 02")
class Module02:
def __init__(self):
print("this is an object from Module02")
import module_test01
import module_test02
print("-"*10)
----------
# 导入模块
# 定义全局变量
# 定义类
# 定义函数
# 定义main方法
def main():
pass
# 判断```__name__```属性值,决定是否运行main方法
if __name__ == '__main__':
main()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。