Python学习笔记 之 类的导入方法

在person.py文件中定义PersonBase的父类和Chinese的子类。PersonBase类中定义两种方法,talk()和walk()。Chinese子类中定义一个属于子类的language()子类

person.py

class PersonBase():
    def __init__(self):
        print('Person Base Class!')
        
    def talk(self):
        print('You can say anything!')
    
    def walk(self):
        print('You can go anywhere!')
        
class Chinese(PersonBase):
    def __init__(self):
        print('This is persons subclass')
        super().__init__()
        
    def language(self):
        print('You are in China,you should say Chinese!')

编辑另一文件class.py,在class.py中有如下几种导入类的方法:

一、导入单个类

class.py

from person import PersonBase     #导入单个PersonBase类
        
if __name__ == "__main__":
    xiaoming = PersonBase()     #使用Person类
    xiaoming.talk()
    xiaoming.walk()
    
    #xiaohong = Chinese()    #未导入Chinese类,因此不可用
    #xiaohong.language()
    #xiaohong.talk()
    #xiaohong.walk()

如上代码,通过import导入了person文件中的PersonBase类,因此可以调用此类以及此类的方法。

二、从一个模块中导入多个类

class.py

from person import PersonBase,Chinese     #导入PersonBase和Chinese类
        
if __name__ == "__main__":
    xiaoming = PersonBase()     #使用Person类
    xiaoming.talk()
    xiaoming.walk()
    
    xiaohong = Chinese()    #以导入Chinese类
    xiaohong.language()
    xiaohong.talk()
    xiaohong.walk()

这种方法是在从同一个文件中导入多个类

三、导入整个模块

class.py

import person
        
if __name__ == "__main__":
    xiaoming = person.PersonBase()     #使用Person类,加上模块名
    xiaoming.talk()
    xiaoming.walk()
    
    xiaohong = person.Chinese()    #以导入Chinese类,加上模块名
    xiaohong.language()
    xiaohong.talk()
    xiaohong.walk()

导入整个person模块,但在使用类的时候需要在前面加上模块名,
即:变量 = 模块名.类()

四、导入模块中的所有类

class.py

from person import*
        
if __name__ == "__main__":
    xiaoming = PersonBase()     #使用Person类
    xiaoming.talk()
    xiaoming.walk()
    
    xiaohong = Chinese()    #以导入Chinese类
    xiaohong.language()
    xiaohong.talk()
    xiaohong.walk()

这种导入方式使用的时候不需要加上模块名。
但python:从入门到精通里面不建议使用这种方式,因为:这种导入方式没有明确地指出你使用了模块中的哪些类。这种导入方式还可能引发名称方面的困惑。如果你不小心导入了一个与程序文件中其他东西同名的类,将引发难以诊断的错误。
需要从一个模块中导入很多类时,最好导入整个模块,并使 module_name.class_name语法来访问类。这样做时,虽然文件开头并没有列出用到的所有类,但你清楚地知道程序的哪些地方使用了导入的模块;你还避免了导入模块中的每个类可能引发的名称冲突。

***小结:***根据python:从入门到实践,学习以上导入类的方法。以上代码中使用了
“if name == “main”:”,这种结构在下一次更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值