• 【python学习】-类(类的基本结构、类的属性、方法调用与修改、类的继承等)


    下面通过一个例子来学习与记录类的编程

    最基本的类

    定义一个Dog类,用于描述Dog的通用属性与行为,在此选择两个通用属性/变量:name,age
    该类的方法有:sit(),roll_over()

    class Dog():
        '''
        实例:dog类
        类属性/变量:name,age
        赋予该实例能力(类的通用功能):sit()、roll_over()
        '''
        def __init__(self,name,age):#方法,形参:self,name,age,通过实参向Dog()传递名字和年龄
            self.name=name#以self为前缀的变量可供类中所有方法使用与访问
            self.age=age
        def sit(self):
            print(self.name.title()+" is now sitting.")
        def roll_over(self):
            print(self.name.title()+" can rolled over!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    类的实例化

    将以上类应用于实例:

    my_dog=Dog("yellow","two")#实例
    
    • 1

    访问该实例的属性:

    my_dog.name
    
    • 1

    输出:‘yellow’

    my_dog.age
    
    • 1

    输出:‘two’
    调用该实例方法:

    my_dog.sit()#调用方法
    
    • 1

    输出:Yellow is now sitting.

    my_dog.roll_over()
    
    • 1

    输出:Yellow can rolled over!

    类的继承

    新建新的类继承以上父类的性质,并在父类基础上增加子类的性质与方法

    class Dog_girl(Dog):#继承
        def __init__(self,name,age):#继承父类的属性与方法
            super().__init__(name,age)#super()将子类与父类联系起来
            self.size=10#子类可以定义新的属性
        def describe_color(self):
            print("the size of "+self.name+" can reach "+str(self.size))
        def sit(self):#子类可以定义与父类一样的方法,达到取代的作用
            print(self.name.title()+" can sit.")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    子类实例化

    his_dog=Dog_girl("girl","one")
    
    • 1

    访问子类新属性:

    his_dog.size
    
    • 1

    输出:10
    调用子类新方法:

    his_dog.describe_color()
    
    • 1

    输出:the size of girl can reach 10

    his_dog.sit()
    
    • 1

    输出:Girl can sit.

    子类继承父类属性与方法

    同时,该子类具备父类的性质与方法:

    his_dog.age
    
    • 1

    输出:one

    his_dog.roll_over()
    
    • 1

    输出:Girl can rolled over!

    修改属性

    以前面的例子为例,继续学习如何修改属性的值

    直接修改属性的值

    比如修改以下实例:

    my_dog=Dog("yellow","two")
    
    • 1

    修改该实例中第一个属性的值,可这样实现:

    my_dog.name="red"
    
    • 1

    再次访问该实例属性,可以发现:

    my_dog.name
    
    • 1

    输出:‘red’

    通过方法修改属性的值

    可以在类中增加一个方法专门用于修改该属性的值,则执行步骤是调用该方法后,属性值改变,且是永久性的,如果后面没有需要再修改属性值

    class Dog():
        '''
        实例:dog类
        类属性:name,age
        赋予该实例能力(类的通用功能):sit()、roll_over()
        '''
        def __init__(self,name,age):#方法,形参:self,name,age,通过实参向Dog()传递名字和年龄
            self.name=name#以self为前缀的变量可供类中所有方法使用与访问
            self.age=age
        def sit(self):
            print(self.name.title()+" is now sitting.")
        def roll_over(self):
            print(self.name.title()+" rolled over!")
        def update_name(self,new_name):
            self.name=new_name
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在该类中增加了一个update_name()的方法,下面通过该方法修改属性name

    my_dog.update_name("blue")
    
    • 1

    修改后检查属性的值是否已经修改:

    my_dog.name
    
    • 1

    输出:‘blue’

  • 相关阅读:
    “一个优秀程序员可抵五个普通程序员!”
    JS(二)
    CNCF基金会成员的分类
    MATLAB GUI录音信号的时域和频域分析
    Allegro怎样标识尺寸?
    kafka使用场景与设计原理
    【力扣】674. 最长连续递增序列 <贪心模拟、动规>
    Spring注解驱动之AnnotationConfigApplicationContext(二)
    7.Vue常用属性
    山东大学数字图像处理实验(二)
  • 原文地址:https://blog.csdn.net/qq_40481843/article/details/126474184