gpt4 book ai didi

python - 在 Python 中,什么时候应该使用元类?

转载 作者:太空狗 更新时间:2023-10-29 22:07:05 24 4
gpt4 key购买 nike

我经历过这个: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)

对于这个类。

我应该在什么情况下使用元类,它为什么有用?

提前致谢。

最佳答案

当你想改变正在创建的时,你可以使用元类。几乎从不需要元类,它们很难调试,也很难理解——但偶尔它们可以使框架更易于使用。在我们的 600Kloc 代码库中,我们使用了 7 次元类:一次 ABCMeta,4 次来自 Django 的 models.SubfieldBase,以及两次使类可用作 Django 中的 View 的元类。正如@Ignacio 所写,如果您知道您需要一个元类(并且已经考虑了所有其他选项),那么您不需要一个元类。

关于python - 在 Python 中,什么时候应该使用元类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10361181/

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