我经历过这个:Python 中的元类是什么? https://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python
但是谁能更具体地解释一下我什么时候应该使用元类概念以及什么时候它非常方便?
假设我有一个如下所示的类:
class Book(object):
CATEGORIES = ['programming','literature','physics']
def _get_book_name(self,book):
return book['title']
def _get_category(self, book):
for cat in self.CATEGORIES:
if book['title'].find(cat) > -1:
return cat
return "Other"
if __name__ == '__main__':
b = Book()
dummy_book = {'title':'Python Guide of Programming', 'status':'available'}
print b._get_category(dummy_book)
对于这堂课。
在什么情况下我应该使用元类以及它为什么有用?
提前致谢。
当你想要改变时你可以使用元类class因为它正在被创建。元类几乎不需要,它们很难调试,也很难理解——但有时它们可以使框架更易于使用。在我们的 600Kloc 代码库中,我们使用了 7 次元类:一次 ABCMeta,4 次来自 Django 的 models.SubfieldBase,以及两次使类可用作 Django 中视图的元类。正如@Ignacio 所写,如果你不这样做know你需要一个元类(并且已经考虑了所有其他选项),你don't需要一个元类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)