在python中使用方法的方法

时间:2019-03-10 17:24:59

标签: python oop methods

我知道有很多问题涉及这个领域,但是没有一个问题可以清楚地回答我所面临的问题(或者也许我真的很胖)。

所以我正在将功能性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中用另一个方法调用一个方法?

1 个答案:

答案 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)