Max*_*rai 2 python macros code-generation macropy
在我的项目中,我必须经常重复这部分代码:
class SimplePhysicObject(Object):
def __init__(self):
super(Object, self).__init__('SimplePhysicObject')
Run Code Online (Sandbox Code Playgroud)
但不是SimplePhysicObject每次都有新的字符串.有没有办法编写一些宏来使这项工作更容易?就像是:
DoTemplate(NewObject)
==>
class NewObject(Object):
def __init__(self):
super(Object, self).__init__('NewObject')
Run Code Online (Sandbox Code Playgroud)
UPD抱歉,Object我之前在代码中声明了我自己的类
我没有看到为什么Object需要实际的类名作为参数的原因.您可以在Objectvia中访问实际的类名self.__class__.__name__:
class Object(object):
def __init__(self):
self.name = self.__class__.__name__
class SimplePhysicObject(Object):
pass
a = SimplePhysicObject()
print a.name
Run Code Online (Sandbox Code Playgroud)
将打印
SimplePhysicObject
Run Code Online (Sandbox Code Playgroud)
这与您的原始代码略有不同:如果您派生自SimplePhysicObject,则该name属性将设置为派生类的名称,而原始代码将继续使用"SimplePhysicObject".