Har*_*Har 15 python oop superclass python-2.7
我有以下课程:
class hello(object):
def __init__(self):
pass
class bye(object):
def __init__(self):
pass
l = [hello, bye]
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,则会收到错误消息:
>>> class bigclass(*l):
File "<stdin>", line 1
class bigclass(*l):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
还有另一种方法可以在运行时自动执行此操作吗?
我使用的是Python 2.7.
unu*_*tbu 13
您可以使用3参数形式type
来创建类:
bigclass = type('bigclass', (hello, bye), {})
Run Code Online (Sandbox Code Playgroud)
使用元类:
class Meta(type):
def __new__(cls, clsname, bases, dct):
bases = tuple(dct.pop('bases'))
return type.__new__(cls, clsname, bases, dct)
class bigclass:
__metaclass__ = Meta
bases = l
print bigclass.__bases__
#(<class '__main__.hello'>, <class '__main__.bye'>)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
140 次 |
最近记录: |