Python函数、类的导入

调用函数有三种方式

一,导入整个模块(所有函数)

导入 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.方法()

#不推荐使用,即没有列出使用到的类,又有可能造成名称冲突。

总结:二、三方法:假如类名相同,将会产生覆盖类,即后输入的类有效,即使前面的类中的属性和方法比覆盖类多,也将无效。简而言之,产生覆盖后,前面的类将全部无效。

你可能感兴趣的:(Python函数、类的导入)