程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python 中的类非常简单

hfteth 2025-05-22 10:33:30 技术文章 3 ℃

基本班级结构

Python 中的类是使用 class 关键字定义的。下面是一个简单的示例:

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def bark(self):
        return f"{self.name} says woof!"
  • __init__ 方法:这是在创建类的实例(对象)时调用的初始值设定项方法。它初始化类的属性。
  • self :这是对类的当前实例的引用,用于访问与对象关联的变量和方法。

创建实例

您可以创建类的实例(对象)并使用其方法:

my_dog = Dog("Buddy", 3)
print(my_dog.bark())  # Output: Buddy says woof!
print(my_dog.name)    # Output: Buddy
print(my_dog.age)     # Output: 3

继承

继承允许一个类从另一个类继承属性和方法。继承的类称为子类,从中继承的类称为父类。

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

class Dog(Animal):
    def __init__(self, name, age):
        super().__init__(name)  # Call the parent class's __init__ method
        self.age = age

    def speak(self):
        return f"{self.name} says woof!"
  • 继承: Dog 类继承自类 Animal
  • super() :此函数用于从父类调用方法。在此示例中 __init__ ,它调用类 Animal 的方法。

用super()

当您具有类的层次结构,并且希望确保正确调用父类的初始化(或其他方法)时,该 super() 函数特别有用。

class Puppy(Dog):
    def __init__(self, name, age, toy):
        super().__init__(name, age)  # Call the parent class's __init__ method
        self.toy = toy

    def play(self):
        return f"{self.name} plays with {self.toy}"

封装

封装是限制对某些方法和变量的访问的概念。这可以通过在变量名称前面加上下划线 ( _ ) 或双下划线 ( __ ) 来完成。

class Dog:
    def __init__(self, name, age):
        self.__name = name  # Private variable
        self.age = age

    def get_name(self):
        return self.__name

    def set_name(self, name):
        self.__name = name

my_dog = Dog("Buddy", 3)
print(my_dog.get_name())  # Output: Buddy
my_dog.set_name("Max")
print(my_dog.get_name())  # Output: Max

多态性

多态性允许方法在不同类之间互换使用。这意味着可以通过继承将不同的类视为同一类的实例。

class Cat(Animal):
    def __init__(self, name):
        super().__init__(name)

    def speak(self):
        return f"{self.name} says meow!"

animals = [Dog("Buddy", 3), Cat("Whiskers")]

for animal in animals:
    print(animal.speak())
# Output

Buddy says woof!
Whiskers says meow!

下面是一个演示上述概念的完整示例:

class Animal:
    def __init__(self, name):
        self.name = name
    def speak(self):
        pass

class Dog(Animal):
    def __init__(self, name, age):
        super().__init__(name)
        self.age = age

    def speak(self):
        return f"{self.name} says woof!"

class Cat(Animal):
    def __init__(self, name):
        super().__init__(name)

    def speak(self):
        return f"{self.name} says meow!"

class Puppy(Dog):
    def __init__(self, name, age, toy):
        super().__init__(name, age)
        self.toy = toy

    def play(self):
        return f"{self.name} plays with {self.toy}"

animals = [Dog("Buddy", 3), Cat("Whiskers"), Puppy("Rex", 1, "ball")]

for animal in animals:
    print(animal.speak())
    if isinstance(animal, Puppy):
        print(animal.play())


最近发表
标签列表