是否可以使用变量从特定对象调用方法?

2024-04-28 12:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想这个问题,这看起来像是Python应该有的东西,但是有没有可能使用类似的代码从不同的地方调用相同的方法呢?你知道吗

下面是我用来测试的类:

class Test():
   def __init__(self,foo):
      self.foo = foo
   def method_a():
      print(self.foo)

下面是运行代码:

import classTest
object1 = classTest.Test("Unn")
object2 = classTest.Test("Tss")
runThis = input("Type in either object1 or object2:")
runThis.method_a()

我明白了: AttributeError:'str'对象没有属性'method\u a'

我做错什么了吗?或者Python缺乏这种功能?你知道吗


Tags: 方法代码testselffooinitdef地方
3条回答

在某些情况下,它可能会有所帮助。你知道吗

import gc
for obj in gc.get_objects():
    if isinstance(obj, Test):
        print obj

您可以使用globals按名称访问变量:

globals()[runThis].method_a()

把你的东西放到字典里:

objects = {}
objects['object1'] = classTest.Test("Unn")
objects['object2'] = classTest.Test("Tss")
runThis = input("Type in either object1 or object2:")
objects[runThis].method_a()

您还可以使用^{} function访问模块globals,这也会给您一个字典,但是大多数时候您希望使用专用字典。你知道吗

相关问题 更多 >