我在下面有一个基本的简单示例来展示我正在尝试做的事情。
这是我正在使用但无法更改的文件(它是一个已安装的库):
treats = 5
class Pet(object):
def eat(self):
# Uses the variable 'treats' in this method
这是我正在处理的文件:
from other_file import Pet
class Dog(Pet):
# Change the value of 'treats' here
我正在尝试为 eat()
方法更改子类中的变量 treats
,而不必覆盖该方法。
当谈到 python 中的面向对象技术时,我仍然是一个新手,并且在不知道要搜索什么的情况下搜索这种特定情况时遇到了麻烦。
谢谢!
最佳答案
正如@adamr 在评论中指出的那样,您可以这样做:
import other_file
other_file.treats = 12
不幸的是,这将更改Pet
的所有 实例的treats
的值。如果这对您不起作用,并且鉴于您无法更改 other_file
,据我所知,您最好的选择是继承 Pet
并覆盖eat
使用例如self.treats
.
关于python - 从父类继承时如何更改不在父类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137763/