digression Bắt đầuĐiều gì là sai với metaclass python đơn giản này?
Tôi chỉ học được những gì metaclasses là bằng Python. Tôi không nghĩ rằng những người sáng tạo của python muốn mọi người sử dụng chúng. Tôi có nghĩa là tên một cái gì đó một metaclass mà có thể không phải là một lớp học trong nhiều trường hợp là đủ để chuyển hướng hầu hết mọi người đi từ khái niệm này!
digression cuối
On cho câu hỏi của tôi. Tôi đã viết metaclass đơn giản này để thêm một chuỗi tài liệu mặc định cho tất cả các lớp được tạo ra trong mô-đun. Nhưng nó không làm việc:
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__
Output:
None
None
Tôi đang làm gì sai?
Nó _is_ có thể sử dụng một metaclass toàn cầu, chỉ cần không kế thừa từ 'object' –
Ai không nên kế thừa từ đối tượng? Metaclass hoặc TẤT CẢ các lớp trong module? – ritratt