我目前正在开展一个安全性具有重要作用的项目,我不确定应该在项目中应用以下哪种方式。
class First():
def some_function(self):
print('this is a function')
class Second():
def second_other_function(self):
First().some_function()
print('this is another function')
class Second():
def __init__(self):
self.first = First()
def some_other_function(self):
self.first.some_function()
print('this is another function')
如果我不希望第二个类与第一个类相关联,那么First()类和其中一个Second()类之间的解决方案会更好,就像不访问它一样。
谢谢
答案 0 :(得分:1)
两个示例之间的唯一区别是第一个示例创建First
的新实例,然后转储它(每当GC决定时)。第二个保持对同一First
对象的引用。
第一种方法非常浪费(每次调用Second.second_other_function
时都会创建并抛弃新对象),我怀疑你真正追求的是静态方法:
class First():
@staticmethod
def some_function():
print('this is a function')
class Second():
def second_other_function(self):
First.some_function()
print('this is another function')
如果你甚至需要First
类,那么这就引出了一个问题。