为什么不在 python 中为类的实例重用类名?

问题描述 投票:0回答:1

我想获得类似模块的行为,而无需导入的麻烦。仅创建一个类然后重用其名称来阻止该类的其他实例是否存在任何问题?

例如,此类用于与摄氏度之间的转换:

# create a class
class oC:
    def __rmul__(self, other):
        return other*K + oC0
    def __rtruediv__(self, other):
        return (other - oC0)/K
    def __str__(self):
        return 'oC'
# reuse the class name for an instance of that class
oC = oC()

它的工作原理就像我想要的那样,但我怀疑大多数程序员都会对这种方法犹豫不决。是否有一些意想不到的行为导致这是一个坏主意?

python class singleton naming
1个回答
0
投票

这会遮盖类名,你将无法 访问该类以创建它的其他实例。

另一方面,如果它是一个单例,即一个只需要单个实例的类,那么这可能是 Python 中的一个很好的方法 - 比涉及的“流行配方”要好得多例如,自定义元类。

© www.soinside.com 2019 - 2024. All rights reserved.