python - 从父类继承时如何更改不在父类中的变量

标签 python oop

我在下面有一个基本的简单示例来展示我正在尝试做的事情。

这是我正在使用但无法更改的文件(它是一个已安装的库):

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/

相关文章:

python - 没有日期时间索引的 pandas dataframe 每天重新采样

python - 制作一个平面列表到嵌入式列表python

Javascript oop 实例

Python 将类对象传递给另一个类

python - 如何使用 python 检索 Elasticsearch 中某个术语的频率?

python - Pandas Groupby 和应用具有自定义函数的方法

python - cursor.execute(...) 用于字符串前缀搜索

python - Python 中的替代构造函数

c++ - 如何使用 C++ 引用对象

java - 对话框上下文问题 - Android