📅  最后修改于: 2023-12-03 15:09:29.591000             🧑  作者: Mango
在面向对象编程中,一个类是一种定义,它描述了对象的属性和方法。而一个对象则是这个类的一个实例化。对于一个类,我们可以通过实例化生成多个对象,每个对象都有自己的属性和方法。
在 Python 中,我们可以使用 class
关键字来定义一个类。
class MyClass:
def __init__(self, name):
self.name = name
def say_hello(self):
print("Hello, my name is", self.name)
其中,__init__
是一个特殊的方法,用于初始化对象的属性。 self
参数指代的是当前对象本身。
我们可以通过创建类的实例来使用它的方法。
my_object = MyClass("Alice")
my_object.say_hello() # 输出:Hello, my name is Alice
在 Python 中,一个类可以通过继承另一个类来获得它的属性和方法。被继承的类称为父类,继承的类称为子类。
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("Subclass must implement abstract method")
class Dog(Animal):
def speak(self):
return "Woof"
class Cat(Animal):
def speak(self):
return "Meow"
在这个例子里,Animal
是一个抽象基类,它的 speak
方法是一个抽象方法,即该方法必须被子类所实现。
Dog
和 Cat
类继承了 Animal
类,它们重写了 speak
方法,使其能输出狗叫和猫叫的声音。
my_dog = Dog("Rex")
my_cat = Cat("Fluffy")
my_dog.speak() # 输出:Woof
my_cat.speak() # 输出:Meow
类的属性可以被所有实例所共享。
class Person:
count = 0
def __init__(self, name):
self.name = name
Person.count += 1
alice = Person("Alice")
bob = Person("Bob")
print(Person.count) # 输出:2
在这个例子里,count
是一个类属性,它在类的所有实例中都是相同的。 __init__
方法中的 Person.count += 1
语句会在每次创建实例时更新类属性。