python定制类是什么?怎么用?

442次阅读
没有评论
python定制类是什么?怎么用?

大家是不是和小编一样,非常喜欢重庆的美食,重庆人说话呢?那有没有小伙伴会想到,小编今天居然要结合现实生活中的例子,给大家展示一个非常实用的代码示例,下面就以重庆为主题,教大家如何定制python的类,一起来看下吧~

一、类的定制

创造(属于自己)的属性或方法,如籍贯开头是重庆市(属性)、会说重庆话(方法)。

上面的操作,都可以说是重庆人在继承的基础上又做了定制。

同样,子类也可以在继承的基础上进行个性化的定制。

包括:

l 创建新属性、新方法。

l 修改继承到的属性或方法。

简而言之:类的定制,不仅可以让子类拥有新的功能,还能让它有权修改继承到的代码。

二、定制,新增代码

来个例子:

class Chinese:
    eye = 'black'
    hair = 'black'
    
    def eat(self):
        print('吃饭,选择用筷子。')
class Chongqing_people(Chinese):  # 类的继承
    place = '重庆'  # 类的定制
 
    def speak(self):  # 类的定制
        print('我会讲重庆话。')
        
zhenxiaofan = Chongqing_people()
print(zhenxiaofan.eye)
print(zhenxiaofan.hair)
# 父类的属性能用
print(zhenxiaofan.place)
# 子类的定制属性也能用
zhenxiaofan.eat()
# 父类的方法能用
zhenxiaofan.speak()
# 子类的定制方法也能用
终端显示
black
black
重庆
吃饭,选择用筷子。
我会讲重庆话。

一、定制,重写代码

重写代码,是在子类中,对父类代码的修改。

来个例子:(普通话的“玩”,在重庆话里是“耍”)

# 原代码
class Chinese:
 
    def __init__(self, place = '中国', do = '玩'):
        self.place = place
        self.do = do
 
    def greet(self):
        print('你好!欢迎到%s来%s。' % (self.place, self.do))
    
zhenxiaofan = Chinese()
zhenxiaofan.greet()
# 提示:初始化方法的定制,和一般的实例方法的定制是一样的。
# 进行继承和定制后代码
class Chinese:
 
    def __init__(self, place = '中国', do = '玩'):
        self.place = place
        self.do = do
 
    def greet(self):
        print('你好!欢迎到%s来%s。' % (self.place, self.do))
 
class Chongqing_people(Chinese):
 
    def __init__(self,  place = '重庆', do = '耍'):
        Chinese.__init__(self, place, do)
 
    
zhenxiaofan = Chongqing_people()
zhenxiaofan.greet()
 
终端显示
你好!欢迎到中国来玩。 # 原代码的显示
你好!欢迎到重庆来耍。 # 定制代码的显示

这便是定制:在复用代码的基础上,又能满足个性化的需求。

类的继承和定制,从某个角度来看,和人类的发展史很像:每一代人都站在了上一代人的肩膀上,在“继承”了上一代的的同时,又“定制”出专属这一代的发展。可以说:我们今天所享受到的便利和乐趣,来源于一代又一代的人的传承和创新。

总结:

1. 类的继承,节省了很多的时间,基于父类基础的属性方法,进行小的修正改变而满足新的功能,这里利用类的继承与重写是很方便的。

2. 不要被局限住,孩子虽然长得像爸爸但是还是可以有不一样的地方,父子之间的关系可以很好的诠释理解子类的继承与重写,需要灵活应用。

3. 子类继承父类,抄写下来要修改的方法,然后修改方法内部的具体代码即可。

好了,以上就是关于python定制类的全部内容了哦。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-06-05发表,共计1781字。
新手QQ群:570568346,欢迎进群讨论 Python51学习