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}")

创建实例

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

类中的实例

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

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

Person person;  

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

person.name = "Alice";  
person.greet();  

这会将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. 在类的方法中修改属性值。
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. 使用 del 关键字删除属性。
class MyClass:  
    def __init__(self):  
        self.name = "张三"

obj = MyClass()  
print(hasattr(obj, "name"))  # 输出:True  
del obj.name  
print(hasattr(obj, "name"))  # 输出:False  

类的继承

  • 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)  

执行结果:

Parent instance attributes: value1 value2  
Child instance attributes: value1 value2 value3  

猜你喜欢

转载自blog.csdn.net/weixin_45880844/article/details/132947451
今日推荐