|
发表于 2025-3-29 19:47:48
|
显示全部楼层
如何为对象创建专属方法?
小甲鱼老师说得没错,Python 中的方法默认是类共享的,也就是说多个对象会共用同一个方法。但如果你想让某个对象拥有“专属”的方法,其实也是可以做到的!
方法一:使用 types.MethodType 动态绑定方法
你可以使用 types.MethodType 给某个对象单独绑定一个方法,这样其他对象就不会有这个方法。
- import types
- class Fish:
- def __init__(self, name):
- self.name = name
- def swim(self):
- print(f"{self.name} 正在专属游泳~")
- fish1 = Fish("小红鱼")
- fish2 = Fish("小蓝鱼")
- # 给 fish1 单独绑定 swim 方法
- fish1.swim = types.MethodType(swim, fish1)
- fish1.swim() # 正常输出
- fish2.swim() # 报错:AttributeError
复制代码
方法二:直接给对象添加 lambda 或函数
你也可以直接给对象添加一个函数或 lambda 表达式作为方法:
- fish1.say_hi = lambda: print("Hi,我是小红鱼!")
- fish1.say_hi()
复制代码
这种方式简单粗暴,但不如 MethodType 那样优雅。
总结
- 默认情况下,方法是类共享的;
- 可以使用 types.MethodType 或 lambda 给对象添加专属方法;
- 这种方式适合特殊需求,不建议滥用。
如果你还有其他关于类和对象的问题,欢迎继续提问哦~
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|