Python 使类对象的名称中包含变量,但不起作用
这应该是从我的platform类创建一个名为platform_1的平台,但是它给出了一个语法错误,指向Python 使类对象的名称中包含变量,但不起作用,python,python-3.x,Python,Python 3.x,这应该是从我的platform类创建一个名为platform_1的平台,但是它给出了一个语法错误,指向%s部分。有人知道我做错了什么,怎么会这样吗 您可以使用类型内置名创建具有变量名的类对象 x = 60 y = 300 platform_name = "Platform" platform_parts = 1 %s.Platform(x,y, "edge_left") % platform_name+"_"+str(platform_parts) 如果您只是尝试将实例分配给动态名称 >
%s
部分。有人知道我做错了什么,怎么会这样吗 您可以使用类型
内置名创建具有变量名的类对象
x = 60
y = 300
platform_name = "Platform"
platform_parts = 1
%s.Platform(x,y, "edge_left") % platform_name+"_"+str(platform_parts)
如果您只是尝试将实例分配给动态名称
>>> name = 'Baz'
>>> codestring = f'''
class {name}: pass
'''
>>> codestring
'\nclass Baz: pass\n'
>>> print(codestring)
class Baz: pass
>>> exec(codestring, globals())
>>> Baz
<class '__main__.Baz'>
这将使名为
Platform_1
的全局变量与Platform
实例一起使用。不要这样做。使用容器,例如dict
而不是%s
是用于字符串格式的。您是否正在尝试创建子类?不清楚你想要什么。
>>> name = 'Baz'
>>> codestring = f'''
class {name}: pass
'''
>>> codestring
'\nclass Baz: pass\n'
>>> print(codestring)
class Baz: pass
>>> exec(codestring, globals())
>>> Baz
<class '__main__.Baz'>
globals()[platform_name+"_"+str(platform_parts)] = Platform(x,y, "edge_left")