定义: 一个.py文件就是一个模块(把一个函数写入py文件中存起来被其它py文件调用)
1.模块管理函数
定义: 模块管理函数就是将函数的定义放到一个.py文件中.可以在其他.py文件中通过import关键字导入模块.导入
后就可以使用模块名+函数名的方式去使用其他模块中的函数.(也就是说把一个函数独立封装到一个py文件中,在另
一个py文件中,要想使用这个函数,首先导入模块名,然后再调用模块中的函数名(模块名就是把函数封装到那个py文件的文件名))
注意: 模块中的变量不能在模块之外单独使用,模块中的变量只针对模块中的代码使用(比如:你想在py文件1中调用
py文件2中的变量,那是不得行的.)
2.使用模块
方法(1):
要想使用模块中的函数需要:模块名+函数名 import module #这个module就是封装函数的那个文件名 aa = module.sum(1, 2) #模块名.函数名 print(aa)
方法(2):
导入指定模块中指定的函数:form 模块名 import 函数名 form module import count_letter_number #例如导入以下函数 import的功能:相当于把被导入的模块中的代码拷贝到import的位置.
方法(3):
如果函数名相同,我们又想不改变函数名.可以通过as关键字可以更改模块名和函数名.目的是防止命名相同,产生冲突. form module import count_letter_number as sum #这里的sum是将封装好的函数名count_letter_number在调用时零时更改为sum 注意: 函数如果同名:后面的函数会覆盖前面的函数.模块下的函数名与被导入模块中的函数名相同时,则会执行模块下的函数,不会执行模块中的函数.
3.不导入执行语句,只导入函数
if __name__ == '__main__': #把它看成一把闭加锁 使用它就相当于一把锁.把执行语句放在它下面可以阻止其它模块去执行这些内容.要想不被模块调用函数中的执行语句,就把函数名放在它下面,保护起来.
例如: def count_letter_number(string): letter_count = 0 digit_count = 0 for ch in string: if 'a' <= ch <= 'z' or 'A' <= ch <= 'Z': letter_count += 1 elif '0' <= ch <= '9': digit_count += 1 return letter_count, digit_count # 比如我们只想导入以上这一部分函数,不需要导入以下的main()函数,那么我们就把main()函数执行的返回值放在if里面.main()函数只能在本文件名中执行,不会被其他模块调用. def main(): print(count_letter_number('a1b2c3d4')) # (4, 4) print(count_letter_number('a123456b')) # (2, 6) #执行语句 print(count_letter_number('123456!!')) # (0, 6) if __name__ == '__main__': main() # 总结:如果对封装的函数返回的结果不想在导入的模块中执行,那么就把函数执行返回的函数名放在if __name__ == '__main__':下面保护起来.它就相当于一把闭加锁.