gpt4 book ai didi

python - 这个简单的 python 元类有什么问题?

转载 作者:太空狗 更新时间:2023-10-29 22:16:34 26 4
gpt4 key购买 nike

Digression Start

我刚刚了解到什么是 Python 中的元类。我不认为 python 的创建者希望每个人都使用它们。我的意思是命名一个在大多数情况下可能不是类的元类足以让大多数人远离这个概念!

Digression end

关于我的问题。我编写了这个简单的元类来向模块中创建的所有类添加默认文档字符串。但它不起作用:

def metest(cls,name,bases,dict):
cls.setattr(cls,'__doc__',"""Default Doc""")
return type(cls,(),{})

__metaclass__=metest

class test(object):
pass

print test.__doc__

t=test()

print t.__doc__

输出:

None
None

我做错了什么?

最佳答案

我并不完全熟悉您正在执行的全局方法,像那样设置 __metaclass__。据我所知,这是另一种有效的风格。

但我将提供一个我熟悉的示例:

class MeTest(type):
def __new__(cls,name,bases,dict):
dict['__doc__'] = """Default Doc"""
return type.__new__(cls,name,bases,dict)

class Test(object):
__metaclass__ = MeTest

关于python - 这个简单的 python 元类有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11256246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com