这个简单的python元类有什么问题?
发布时间:2020-11-17 16:02:50 所属栏目:Python 来源:互联网
导读:Digression Start 我刚学会了Python中的元类.我不认为python的创建者希望每个人都使用它们.我的意思是名字,在大多数情况下可能不是一个类的元类足以让大多数人远离这个概念! Digression end 关于我的问题.我编写了这个简单的元类来为模块中创建的所有类添加
我刚学会了Python中的元类.我不认为python的创建者希望每个人都使用它们.我的意思是名字,在大多数情况下可能不是一个类的元类足以让大多数人远离这个概念!
关于我的问题.我编写了这个简单的元类来为模块中创建的所有类添加默认的文档字符串.但它不起作用: 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 我究竟做错了什么? 解决方法我让你的例子工作:def metest(name,dict): print name,dict dict['__doc__'] = """New Doc""" cls = type(name+"_meta",dict) return cls class Test(object): "Old doc" __metaclass__ = metest print Test print Test.__doc__ t = Test() print t.__doc__ >使用“元类”.>更正“类创建功能”的签名. cls将由我们创建.>为了区分,请使用“旧”和“新”文档字符串. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 想在Jupyter Notebook(Anaconda)中保存并运行Python脚本
- django – 写入日志文件时的权限被拒绝
- python – 将numpy.array中的每个元素与numpy.array中的每个
- 如何执行python命令行自动完成,但不仅仅是在字符串的开头
- python项目的项目结构
- django或playframework
- python – Opencv Homography矩阵H和Inverse H转换点没有得
- python – matplotlib.pyplot.imshow:在使用属性“sharex”
- python – Linux上的多处理进程终止失败
- python – 如何使我的SWIG扩展模块与Pickle工作?