请原谅,我是 Python 新手,正在尝试学习 Pythonic 方法。我正在设计一个类,它基本上从许多不同的来源(文件)初始化其状态。我已将此行为隔离到单个实例方法 _load_from_file(file)。它在 __init__ 中被调用了很多次,但我通常喜欢将我的构造函数放在类定义的开头,并将我的内部辅助方法放在最后。
但是,如果我采用这种方法,_load_from_file 没有在 __init__ 中我想使用它的地方定义。你们 pythonistas 如何解决这种情况?
详细说明:
class Thing(object):
def __init__(self, file_path):
f = open('file_path')
_load_from_file(self,"someData",f) # ISSUES!
_load_from_file(self,"moreData",f) # WRONG!
f.close()
# Interface
# ...
# Internal - Where do you guys put this stuff?
def _load_from_file(self,thingToLoad,file):
# logic
请您参考如下方法:
您确定它不会按照您已经使用的顺序工作吗?请记住,您不是在使用 C。被调用的方法不必在调用代码之前出现在类定义中,只要它在被调用时已经定义即可。
然而,我会改变这个:
_load_from_file(self)
为此:
self._load_from_file()
您收到的任何名称未定义错误不是因为您的方法调用位于比方法定义早的文件位置,而是因为您试图像全局函数一样调用它,而不是通过方法所在的对象来调用它已定义。
