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

python

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

一、类的定制

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

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

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

包括:

创建新属性、新方法。

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

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

二、定制,新增代码

来个例子:

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定制类的全部内容了哦~如需了解更多python实用知识,点击进入云海天Python教程网

以上是 python定制类是什么?怎么用? 的全部内容, 来源链接: utcz.com/z/529749.html

回到顶部