我有一个像下面这样的python类
def function1():
return=1+1
class Collection()
...
@classmethod
def get_allobjects(cls):
..logic here..
retval = function1()
function1是从外部类封装的,但需要可用于get_allobjects。定义此功能的最佳方法是什么?应该将其定义为类方法,还是可以将其作为独立函数保留在同一python文件中(在类之前定义?)?有关样式的任何建议或建议,将不胜感激。
谢谢, 杰夫
答案 0 :(得分:3)
这实际上取决于上下文。您的选择:
def function1():
return=1+1
function1()
_
开头的名称表示不应在外部使用它。人们仍然可以,但是会发出警告。def _function1():
return=1+1
_function1()
@classmethod
def function1(cls):
return=1+cls.some_class_attribute
self.function1()
@staticmethod
def function1():
return=1+1
self.function1()
@staticmethod
def _function1():
return=1+1
self._function1()
这全部取决于您希望函数的可见性以及函数的逻辑是否真正独立于类,或者仅在类的上下文中有意义。
还有更多选择,例如将函数定义为方法本身的子函数,但这仅在函数本身的构造在某种程度上取决于类/对象的状态时才有意义。