python - 如果我有一个类的单个实例,最好是让它全局化还是作为构造函数中的参数传递?

标签 python

我有一个类的实例,我的所有程序都需要它(假设没有并发问题)。

最好有这样的东西:

def main():
    usefulClass = usefulClass()
    self.a = A(usefulClass)
    self.b = B(usefulClass)

class A/B:
     def __init__(self, usefulClass):
         self.usefulClass = usefulClass

     def method(self):
         self.usefulClass.whatever()

if __name__ == "__main__":
    main()

或者像这样:

usefulClass = usefulClass()

def main():
    self.a = A()
    self.b = B()

class A/B:
     def __init__(self):
         pass

     def method(self):
         usefulClass.whatever()

if __name__ == "__main__":
    main()

最佳答案

第一个更好,因为它避免使用全局变量 – global variables can cause tons of headaches later on .

例如,如果您不小心修改了其他模块中的 usefulClass 怎么办?很难追踪出问题的原因和原因。

关于python - 如果我有一个类的单个实例,最好是让它全局化还是作为构造函数中的参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378833/

相关文章:

javascript - 如果访问被禁止,服务器端方法是否应该抛出异常?

python - Flask with docker 在除 root 之外的所有路由上返回 404

Python:为什么我的装饰器无法工作?

Python - 用正斜杠替换反斜杠(Dropbox 方面)

python - RollingGroupby 上的 Pandas 聚合方法

java - AWS lambda 同时支持 python 和 java 语言

python - 如何使用可变补丁大小的 tf.random_crop 定义形状?

python - numpy 与 python : convert 3d array to 2d

64 位系统中 Python 对 int 和 float 的内存消耗

python - 在 Django 中,不活动时自动注销的用户仍显示为事件使用