如何在 Python 中创建类对象?
在 Python 中,类就像创建对象的蓝图。定义类后,就可以基于该类创建对象(也称为实例)。以下是四种在 Python 中创建类对象的方法
创建类和实例
示例
在此示例中,我们使用 `class` 关键字定义了一个名为 `MyClass` 的类。然后,我们使用类名后跟括号 `()` 创建了该类的实例,名为 `obj`。这将创建一个空对象,它是该类的实例。
class MyClass:
pass
obj = MyClass()
print(obj)
输出
<__main__.MyClass instance at 0x7f1b31f44640>
创建具有 `__init__()` 方法的类
示例
在此示例中,我们定义了一个名为 `MyClass` 的类,并带有一个 `__init__()` 方法。当我们创建该类的实例时,将调用此方法。它使用作为参数传递的值初始化对象的属性。
然后,我们创建了该类的实例,名为 `obj`,并传递了参数 `1` 和 `2`。这将创建一个具有属性 `x=1` 和 `y=2` 的对象。
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
obj = MyClass(1, 2)
print(obj.x)
print(obj.y)
输出
1 2
创建具有 `classmethod()` 的类
示例
类方法是一种特殊的函数,它属于一个类,可以用来创建该类的新对象或修改现有对象。它就像创建或更改特定类型对象的配方。
假设我们有一个名为 Animal 的类,它有一个名为 species 的属性。我们可以创建一个名为 make_sound 的类方法,该方法返回一个字符串,表示该物种的动物发出的声音。例如,狗可能会说“汪汪!”,而猫可能会说“喵喵!”。
class Animal:
def __init__(self, species):
self.species = species
@classmethod
def make_sound(cls, species):
if species == "dog":
return "Woof woof!"
elif species == "cat":
return "Meow!"
else:
return "I don't know what sound that animal makes."
dog = Animal("dog")
print(dog.make_sound("dog"))
cat = Animal("cat")
print(cat.make_sound("cat"))
bird = Animal("bird")
print(bird.make_sound("bird"))
输出
Woof woof! Meow! I don't know what sound that animal makes.
创建现有类的子类
示例 1
在此示例中,我们定义了一个名为 `ParentClass` 的类。然后,我们使用语法 `class ChildClass(ParentClass):` 定义了 `ParentClass` 的子类,名为 `ChildClass`。这将创建 `ParentClass` 的一个子类,该子类继承其所有属性和方法。
然后,我们使用类名后跟括号 `()` 创建了 `ChildClass` 的实例,名为 `obj`。这将创建一个空对象,它是 `ChildClass` 的实例,进而继承了 `ParentClass` 的所有属性和方法。
class ParentClass:
pass
class ChildClass(ParentClass):
pass
obj = ChildClass()
print(obj)
输出
<__main__.ChildClass object at 0x7fb710464ee0>
示例 2
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"My name is {self.name} and I am {self.age} years old.")
# creating an object of Person class
person1 = Person("Alice", 25)
# calling the introduce method of Person class object
person1.introduce()
输出
My name is Alice and I am 25 years old.
在此示例中,我们定义了一个 Person 类,它有两个实例变量 name 和 age,以及一个 introduce 方法,该方法打印该人的姓名和年龄。然后,我们通过调用其构造函数并传递参数“Alice”和 25 创建了 Person 类的对象 person1。最后,我们调用了 person1 对象的 introduce 方法,该方法打印了该人的姓名和年龄。
示例 3
在此示例中,我们定义了一个 Car 类,它有三个实例变量 make、model 和 year,以及一个 get_info 方法,该方法返回一个格式化的字符串,其中包含汽车的年份、制造商和型号。然后,我们通过调用其构造函数并传递参数“Toyota”、“Corolla”和 2022 创建了 Car 类的对象 car1。最后,我们调用了 car1 对象的 get_info 方法,该方法返回一个包含有关汽车信息的字符串,并使用 print 函数打印它。
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def get_info(self):
return f"{self.year} {self.make} {self.model}"
# creating an object of Car class
car1 = Car("Toyota", "Corolla", 2022)
# calling the get_info method of Car class object
print(car1.get_info())
输出
2022 Toyota Corolla
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP