Tags: 数据类型 AI 人工智能

轻松理解Python中的类与对象

Python是一门面向对象的编程语言,几乎所有东西都是对象。对象拥有自己的属性(变量)和方法(函数)。要创建对象,我们首先需要定义一个类(Class)。你可以把类看作创建对象的“模板”或者“蓝图”。

1. 如何定义一个类(Class)

在Python中定义类,需要使用关键字class


class MyClass:
    x = 5

2. 创建对象(Object)

通过类,我们可以创建出具体的对象:


class MyClass:
    x = 5
p1 = MyClass()
print(p1.x)  # 输出: 5

3. __init__()函数的作用

上面的例子比较简单,但实际开发时通常需要初始化对象,这就需要用到__init__()函数。这个特殊方法在创建对象时自动执行,通常用来设置对象的初始属性值。


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
p1 = Person("张三", 36)
print(p1.name)  # 输出: 张三
print(p1.age)   # 输出: 36

4. __str__()函数的作用

__str__()函数定义了对象转换成字符串时的输出结果。


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return f"{self.name}({self.age}岁)"
p1 = Person("李四", 30)
print(p1)  # 输出: 李四(30岁)

5. 对象中的方法(Method)

类中也可以定义方法(Method),方法其实就是对象里的函数,用于描述对象的行为。


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def greet(self):
        print("你好,我叫" + self.name)
p1 = Person("王五", 28)
p1.greet()  # 输出: 你好,我叫王五

6. self参数

self指向类的当前实例,可以用来访问实例的变量和方法。虽然self是常规用法,但实际上你可以任意命名:


class Person:
    def __init__(myself, name, age):
        myself.name = name
        myself.age = age
    def greet(abc):
        print("你好,我叫" + abc.name)
p1 = Person("赵六", 40)
p1.greet()  # 输出: 你好,我叫赵六

7. 修改对象的属性


p1.age = 45
print(p1.age)  # 输出: 45

8. 删除对象的属性或对象本身


# 删除对象属性
del p1.age  
# 删除整个对象
del p1

9. 空类的定义(pass关键字)

如果定义了类但还没有内容,使用pass关键字可以避免出错:


class EmptyClass:
    pass

总结

面向对象编程使Python代码更清晰,更易维护。通过定义类和创建对象,我们可以把现实世界中复杂的事物抽象成代码结构,更高效地进行开发。