tip:以下是正文部分
一、测试代码会被执行
当a.py中调用b.py中的函数时,会执行b.py中的测试代码。
b.py
def add(a,b):
return a+b
def subtract(a,b):
return a-b
print("hello")
a.py
from b import *
print(add(1,2))
print(subtract(1,2))
在a.py中调用b.py的执行结果为
f1
3
-1
二、“_ _name _ _” 与 " _ _main _ _"
每个py文件都有自己的"_ _name _ _" 。
但是只有作为主文件"_ _name _ _" 与会变成 " _ _main _ _"。
三、解决方法
将b.py的测试代码放入if中判断"_ _name _ _" 。
if __name__=="__main__":
print("`hello")
四、__ all__
在文件中设置__ all__ ,可以控制哪些函数允许调用。
__all__=["add","subtract"]
注意 : 只能约束from b import * 的导入方式。
import b的导入方式不被约束。
五、包的引入
- import引入
import 包名.模块名 (注意:调用函数时也要带上包名)
- from 引入
from 包名 import 模块名 (调用函数时不需要带上包名)
from 包名.模块名 import 函数,类,变量(调用时模块名也不需要)
PyCharm中可以使用 alt + enter / shift + alt + enter