• 【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’

  • 相关阅读:
    SELinux零知识学习十一、SELinux策略语言之客体类别和许可(5)
    总结:golang一些常见写法
    【HDLBits 刷题 9】Circuits(5)Finite State Manchines 1-9
    kotlin代码执行顺序初始化
    [附源码]java毕业设计基于ssm的电子网上商城
    Linux学习之认识操作系统
    字节跳动基于ClickHouse优化实践之“多表关联查询”
    HTTPS是什么,详解它的加密过程
    关于loss.backward()optimizer.step()optimizer.zero_grad()的顺序
    数据密集型应用第六章数据分区
  • 原文地址:https://blog.csdn.net/qq_40481843/article/details/126474184