如果您有以下课程:
class Foo(object):
def __init__(name):
self.name = name
然后你在一个名为 check_foo.py 的文件中像这样使用它
with Foo("naming it"):
print Foo.name
with Foo("naming another"):
print Foo.name
如果你导入check_foo
并运行dir(check_foo)
,你只会得到一个check_foo.Foo
模块。
我知道 PEP 343 提到您可以执行以下操作:
with Foo("naming it") as naming_it:
print naming_it.name
check_foo
并且它会在as中正确实例化,check_foo.naming_it
但我的问题是可以解决这个问题并动态设置名称。
我正在玩概念证明,想知道我能用上述想法走多远。
是否可以使用我传递给的字符串命名实例Foo
?
注意:我也知道withhacks
. 我们不建议我看一下:)