【问题标题】:Is there any way to acess specific instances of a class in the class iteslf有什么方法可以访问类本身中类的特定实例
【发布时间】:2022-01-25 18:46:08
【问题描述】:

有没有什么方法可以在不具体调用实例名称的情况下从类内部访问类的实例及其中的变量?

class test:
    def __init__(self, x):
        self.x = x
    @staticmethod
    def isTen():
        if(x.x == 10 or y.x == 10):
            return True
        else:
            return False
x = test(1)
y = test(10)

我想在类中创建一个静态函数,该函数检查是否有一个实例的 x 变量的值为 10。有没有办法做到这一点,而无需将实例的名称硬编码到函数中,以便它可扩展以处理更多实例变量和值?

【问题讨论】:

  • 你能澄清一下你的最终目标是什么吗?有很多方法可以做到这一点,有些更好,有些更糟
  • also: staticmethods 根据定义不直接访问类/实例属性。也许你的意思是classmethod
  • 类无法访问它创建的所有实例。如果你想这样做,你必须编写代码来跟踪这些实例

标签: python class


【解决方案1】:

不,这不是正确的编程。您需要一个 TestCollection 类来分配并跟踪所有 Test 实例。 Test 实例只是担心自己,他们不知道还有其他实例。

请考虑一下您当前的设计有多精致。如果您决定将 class Test 移动到另一个文件怎么办?你不能让它假设全局变量的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2011-02-06
    • 2016-01-13
    • 2014-03-20
    • 2018-01-05
    • 2012-10-24
    相关资源
    最近更新 更多