如何在Python中创建类对象

如何在Python中创建类对象

在Python中,类就像创建对象的蓝图。一旦你定义了一个类,就可以基于这个类创建对象(也叫做实例)。以下是在Python中创建类对象的四种方法:

创建一个类和一个实例

示例

在这个示例中,我们使用关键字class定义了一个名为MyClass的类。然后,我们使用类名后面的括号()创建了一个名为obj的类实例。这将创建一个空对象,它是该类的一个实例。

class MyClass:
    pass

obj = MyClass()
print(obj)

输出

<__main__.MyClass instance at 0x7f1b31f44640>

创建一个带有init()方法的类

示例

在这个示例中,我们定义了一个名为MyClass的类,它带有一个__init__()方法。当我们创建该类的一个实例时,该方法被调用。它使用传入的参数值来初始化该对象的属性。

然后,我们创建了一个名为obj的类实例,并传入参数12。这样就创建了一个具有属性x=1y=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() 的类

示例

classmethod() 是一个特殊的函数,它属于一个类,并且可以用来创建该类的新对象或修改现有对象。它类似于创建或修改特定类型对象的食谱。

假设我们有一个名为 Animal 的类,它有一个名为 species 的属性。我们可以创建一个名为 make_sound 的 classmethod,它返回一个表示该物种动物发出声音的字符串。例如,狗可能会说“汪汪!”而猫可能会说“喵!”。

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所有属性和方法的子类。

然后我们使用类名后面的括号()创建了一个叫做objChildClass实例。这创建了一个空对象,它是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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程