gpt4 book ai didi

python - 在 python 函数中定义本地类是个坏主意吗?

转载 作者:行者123 更新时间:2023-11-28 20:45:46 26 4
gpt4 key购买 nike

不久前我正在处理的一个函数具有如下结构:

def function():
class Inner:
#class stuff
#function stuff

Inner 仅在 function 内部使用和需要,并且在函数结束时也不会返回。定义本地类是个坏主意吗?我听说过很多关于它对性能不利的事情,因为每次运行该函数时 python 都必须重新编译该类,并且由于性能是我要通过此函数实现的目标,所以我有点担心这样做.

最佳答案

除了效率低下之外,每个 Inner 类都是一个全新的对象,因此不同的实例永远不会属于同一类,这在某种程度上违背了类性的观点:

In [4]: def factory():
...: class Inner(object):
...: pass
...: return Inner
...:

In [5]: i1 = factory()()

In [6]: i2 = factory()()

In [7]: i1.__class__
Out[7]: __main__.Inner

In [8]: i2.__class__
Out[8]: __main__.Inner

In [9]: i1.__class__ is i2.__class__
Out[9]: False

In [10]: isinstance(i1, i2.__class__)
Out[10]: False

如果每个实例都是完全独立的,这不是问题,但需要注意这一点。

关于python - 在 python 函数中定义本地类是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22497985/

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