调用函数有三种方式
一,导入整个模块(所有函数)
导入 import module_name
调用 module_name.function_name()
#在这种情况中,不会出现下面两种方式的缺点,即具有相同函数名的问题,因为一个文件中不存在两个相同的文件名。但缺点是能不清晰显示出使用到的函数,调用的时候也需要重复写模块名。
二,导入模块中单个或多个函数
导入 from module_name import function_name1(,function_name2...)
调用function_name()
#在这种情况中,虽然能清楚的表示出使用到的函数,如果是多个不同的模块,但其中的函数名有重叠时,后导入的模块函数为能使用的函数,即产生覆盖函数。
三,导入模块中所有的函数
导入 from module_name import *
调用 function_name()
#这种方法不推荐使用,因为它集合了前两种方式的缺点,即导入不清晰,调用全部函数会更容易造成覆盖函数。
导入类
一,导入整个模块(所有类)
导入 import module_name
调用类的属性和方法:创造实例X = module_name.class_name( ,)
X.属性
X.方法()
#虽然开头没有列出用到的所有类,但你清楚地知道在程序的哪些地方使用了导入的模块,还避免了导入模块中的每个类可能引发的名称冲突。
二,导入单个或多个类
导入 from module_name import class_name1(,class_name2 ...)
调用类的属性和方法: 创造实例X = class_name( ,)
X.属性
X.方法()
#清楚地列出用到的类,但可能会造成名称的冲突
三,导入模块中所有的类
导入 from module_name import *
调用类的属性和方法: 创造实例X = class_name( ,)
X.属性
X.方法()
#不推荐使用,即没有列出使用到的类,又有可能造成名称冲突。
总结:二、三方法:假如类名相同,将会产生覆盖类,即后输入的类有效,即使前面的类中的属性和方法比覆盖类多,也将无效。简而言之,产生覆盖后,前面的类将全部无效。