我已经完成了这个: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)
Run Code Online (Sandbox Code Playgroud)
对于这堂课.
在哪种情况下我应该使用元类,为什么它有用?
提前致谢.
当你想的变异可以使用元类类为正在创建它.几乎不需要元类,它们很难调试,而且很难理解 - 但偶尔它们可以使框架更易于使用.在我们的600Kloc代码库中,我们使用了7次metaclasses:ABCMeta一次,4x models.SubfieldBase来自Django,两次是元类,使得类可用作Django中的视图.正如@Ignacio所写,如果你不知道你需要一个元类(并考虑了所有其他选项),你就不需要元类.
归档时间: |
|
查看次数: |
571 次 |
最近记录: |