• Python基础复习-面向对象的编程


    类的定义

    class MyClass:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def display(self):
            print(f"Name: {self.name}, Age: {self.age}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    创建实例

    # 创建一个实例
    person = MyClass("小明", 25)
    person.display()
    
    • 1
    • 2
    • 3

    类中的实例

    在类中使用实例是指使用类定义的数据类型来创建一个具体的对象,该对象具有类定义的属性和方法。实例化一个类时,会为该类的属性和方法分配内存,并返回一个指向该对象的指针或引用。可以使用这个对象来访问和修改类的属性和方法。

    例如,假设有一个名为Person的类,它定义了一个名为name的属性和一个名为greet的方法。可以使用以下代码创建一个Person类的实例:

    Person person;  
    
    • 1

    这创建了一个名为person的对象,它是一个Person类的实例。可以使用person对象来访问和修改Person类的属性和方法,例如:

    person.name = "Alice";  
    person.greet();  
    
    • 1
    • 2

    这会将person对象的name属性设置为"Alice",并调用greet方法来输出"Hello, Alice!"

    修改属性

    1. 使用点号运算符(.)直接访问和修改属性值。
    class MyClass:  
        def __init__(self):  
            self.name = "张三"
    
    obj = MyClass()  
    print(obj.name)  # 输出:张三  
    obj.name = "李四"  
    print(obj.name)  # 输出:李四  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 在类的方法中修改属性值。
    class MyClass:  
        def __init__(self):  
            self.name = "张三"
    
        def change_name(self, new_name):  
            self.name = new_name
    
    obj = MyClass()  
    print(obj.name)  # 输出:张三  
    obj.change_name("李四")  
    print(obj.name)  # 输出:李四  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 使用 del 关键字删除属性。
    class MyClass:  
        def __init__(self):  
            self.name = "张三"
    
    obj = MyClass()  
    print(hasattr(obj, "name"))  # 输出:True  
    del obj.name  
    print(hasattr(obj, "name"))  # 输出:False  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    类的继承

    • class 子类名(父类名)
    • 声明继承父类的属性
    • 自动继承所有方法【可以重写】
    class Parent:  
        def __init__(self, attr1, attr2):  
            self.attr1 = attr1  
            self.attr2 = attr2
    
    class Child(Parent):  
        def __init__(self, attr1, attr2, new_attr):  
            super().__init__(attr1, attr2)  
            self.new_attr = new_attr
    
    # 创建一个父类实例  
    parent_instance = Parent("value1", "value2")  
    print("Parent instance attributes:", parent_instance.attr1, parent_instance.attr2)
    
    # 创建一个子类实例  
    child_instance = Child("value1", "value2", "value3")  
    print("Child instance attributes:", child_instance.attr1, child_instance.attr2, child_instance.new_attr)  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    执行结果:

    Parent instance attributes: value1 value2  
    Child instance attributes: value1 value2 value3  
    
    • 1
    • 2
  • 相关阅读:
    Python中不同进制间的转换
    API接口采集商品评论数据,item_review-获得淘宝商品评论
    《网络安全笔记》第二章:Windows基础命令
    C#------Circle圆类
    level=warning msg=“failed to retrieve runc version: signal: segmentation fault“
    Python 面向对象编程之封装的艺术
    jdk动态代理使用详解
    深入浅出MySQL Server System Variables
    【毕业设计】基于单片机的蓝牙相机设计与实现 - 物联网 单片机 嵌入式
    GitHub上标星23K+的Redis进阶笔记(应用+原理+集群+拓展+源码)
  • 原文地址:https://blog.csdn.net/weixin_45880844/article/details/132947451