Python 使类对象的名称中包含变量,但不起作用

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) 如果您只是尝试将实例分配给动态名称 >

这应该是从我的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)

如果您只是尝试将实例分配给动态名称

>>> 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")