当前位置: 首页 > 面试题库 >

从同一模块中的类名称字符串获取python类对象

连曜灿
2023-03-14
问题内容

我有一堂课

class Foo():
    def some_method():
        pass

同一模块中的 另一个类:

class Bar():
    def some_other_method():
        class_name = "Foo"
        #can I access the class Foo above using the string "Foo"?

我希望能够Foo使用字符串“ Foo”访问该类。

如果我在另一个模块中,可以执行以下操作:

from project import foo_module
foo_class = getattr(foo_module, "Foo")

我可以在同一模块中做同样的事情吗?

IRC中的家伙建议我使用一个将字符串类名称映射到类的映射字典,但是如果有更简单的方法,我不想这样做。


问题答案:
import sys
getattr(sys.modules[__name__], "Foo")

# or

globals()['Foo']


 类似资料:
  • 问题内容: 我知道该类的名称,说 “ MyClass”, 并且想检索该对象。 MyClass.class 供将来参考。有没有办法做到这一点? 我已经浏览了整个网络,但发现与之相关的大多数内容都与有关,我认为这不适合我的情况。我不想初始化一个类,而只是获取一个类对象以备将来使用。 编辑:关于此的第一个答案: 我已经检查了该方法,但我认为这也应该初始化该类。现在,我可以使用完整参数来调用它,并传递给第

  • 问题内容: 我有一个名字叫类的名字(没有扩展名)。我想将其分配给变量,如下所示: 我怎样才能做到这一点? 问题答案: 但是您应该是完全合格的-即

  • 问题内容: 我有一个类型T的泛型类,我想获得实例化时传递给该类的类型的名称。这是一个例子。 我已经逛了好几个小时,但似乎找不到任何方法。有人尝试过吗? 任何帮助是极大的赞赏。 谢谢 问题答案: 单纯的快速方法是不可能的。 可能的解决方法是: 这些限制取决于它仅适用于类的事实。 如果这是通用类型: 返回全名(包括名称空间): 这就是为什么func搜索字符的最后一次出现。 测试如下: 更新Swift

  • 问题内容: 假设我以如下方式实例化Java对象: 现在,是否可以从一种类方法中获取字符串形式的var对象的名称? 其他详细信息(已编辑): 我之所以想获取持有该对象引用的变量的名称,是因为我的new变量将在页面上创建一个新的clickable ,需要调用一个函数。在插入新对象时,我需要知道持有对象引用的变量的名称。也许有更好的方法吗? 您是对的,对术语的混淆感到抱歉。 我之所以想获取持有该对象引用

  • 问题内容: 有什么解决方案来获取对象的函数名称? -没有有关或的信息。有可能得到其中之一吗? 问题答案: 获取对象的构造函数,然后检查其name属性。 返回“ myClass”。

  • 问题内容: 我正在动态创建python类,我知道并非所有字符在此上下文中都是有效的。 我可以在类库中某处使用某种方法来清理随机文本字符串,以便将其用作类名吗?那个或者允许的字符列表将是一个很好的帮助。 关于与标识符名称冲突的补充: 就像在下面的答案中指出的@Ignacio一样,任何可以有效用作标识符的字符都是类名中的有效字符。您甚至可以毫无保留地将保留字用作类名。但是有一个陷阱。如果您确实使用保留