python入门必知:一篇文章给你讲明白python中常用的类方法!

在 Python 中,类(Class)是面向对象编程(OOP)的核心。类中可以定义各种方法(函数),用于操作类的属性或实现特定功能。下面是 Python 类中一些常用的方法及其用途,并附带示例说明:

🧱 1. __init__ 方法(构造方法)

📌 用途:

  • 初始化对象属性
  • 创建对象时自动调用

🧪 示例:

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

p = Person("Alice", 25)
print(p.name)  # 输出:Alice

🧱 2. 实例方法(普通方法)

📌 用途:

  • 操作实例属性
  • 通过对象调用

🧪 示例:

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

    def greet(self):
        return f"Hello, my name is {self.name}"

p = Person("Bob")
print(p.greet())  # 输出:Hello, my name is Bob

🧱 3. 类方法(@classmethod

📌 用途:

  • 操作类属性(而不是实例属性)
  • 第一个参数是 cls,表示类本身

🧪 示例:

class Dog:
    count = 0

    def __init__(self):
        Dog.count += 1

    @classmethod
    def how_many(cls):
        return f"There are {cls.count} dogs."

d1 = Dog()
d2 = Dog()
print(Dog.how_many())  # 输出:There are 2 dogs.

🧱 4. 静态方法(@staticmethod

📌 用途:

  • 不访问类属性或实例属性
  • 类似于普通函数,只是放在类中以逻辑归类

🧪 示例:

class MathTool:
    @staticmethod
    def add(x, y):
        return x + y

print(MathTool.add(3, 5))  # 输出:8

🧱 5. __str__ 方法(字符串表示)

📌 用途:

  • 定义对象的字符串表示
  • 用于 print() 或 str() 时自动调用

🧪 示例:

class Book:
    def __init__(self, title):
        self.title = title

    def __str__(self):
        return f"《{self.title}》"

b = Book("Python入门")
print(b)  # 输出: 《Python入门》

🧱 6. __repr__ 方法(开发者友好的表示)

📌 用途:

  • 返回对象的“官方”字符串表示
  • 用于调试,或在交互式解释器中显示对象

🧪 示例:

class Book:
    def __init__(self, title):
        self.title = title

    def __repr__(self):
        return f"Book('{self.title}')"

b = Book("Python进阶")
print(repr(b))  # 输出:Book('Python进阶')

🧱 7. __del__ 方法(析构方法)

📌 用途:

  • 对象被销毁时自动调用
  • 一般用于资源清理

🧪 示例:

class FileHandler:
    def __del__(self):
        print("对象被销毁,释放资源")

f = FileHandler()
del f  # 输出:对象被销毁,释放资源

🧱 8. 属性方法(@property

📌 用途:

  • 把方法变成属性调用
  • 实现只读属性或属性控制

🧪 示例:

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def area(self):
        return 3.14 * self._radius ** 2

c = Circle(5)
print(c.area)  # 输出:78.5 (注意:不是 c.area())

✅ 总结表格

方法名类型用途说明
__init__构造方法初始化对象
实例方法普通方法操作实例属性
@classmethod类方法操作类属性
@staticmethod静态方法工具函数,不依赖实例或类
__str__特殊方法可读性强的字符串表示
__repr__特殊方法调试用字符串表示
__del__析构方法对象销毁时清理资源
@property属性方法把方法变成只读属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值