我知道有很多问题涉及这个领域,但是没有一个问题可以清楚地回答我所面临的问题(或者也许我真的很胖)。
所以我正在将功能性python代码传输到OOP python,我有一些代码
class fake_class:
def __init__(self, data_type=None):
if data_type is None:
self.data_type = ""
else:
self.data_type = data_type
def printToLog(x='', *args):
if args:
x = x.format(*args)
else:
x = str(x)
logFile.write(x)
logFile.write('\n')
print(x)
if __name__ == '__main__':
main()
def main(self):
self.printToLog('this is just an example, for some fake code')
f = fake_class('data-xml-435')
# please appreciate that the full code is over 500 lines
# long that has been edited down for the sake of readability
我需要main方法来能够调用该类中的其他方法,但是无论我做什么,我都无法允许它这样做。我已经将printToLog制成了一个类方法,我尝试了不同的方法来实例化fake_class,调用并全部无效。该程序抱怨说,它不知道什么是printToLog,什么是自我或什么是false_class!
那么我如何在Python中用另一个方法调用一个方法?
答案 0 :(得分:2)
if __name__ == '__main__':
main()
对于类没有任何意义。您只是不需要它们。
删除该对象后,您必须使用创建的对象显式调用main
。
f = fake_class('data-xml-435')
f.main() # or f.printToLog(with arguments) whichever is exciting you!
同样,printToLog
是类的函数,因此您需要self
:
def printToLog(self, x='', *args):
if args:
x = x.format(*args)
else:
x = str(x)
logFile.write(x)
logFile.write('\n')
print(x)