python - 在python中使用方法的方法
问题描述
我知道这个领域有很多问题,但没有一个明确回答我面临的问题(或者也许我真的很厚)。
所以我将功能性 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 是什么,self 是什么或 fake_class 是什么!
那么我如何在 Python 中用另一种方法调用一个方法呢?
解决方案
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)
推荐阅读
- reactjs - TypeError:无法读取未定义的属性“_id”(完整堆栈问题)
- python - 如何使用 groupby 追加列表?ValueError:函数不减少
- c++ - ue4 c++ fps教程第3.2节出错,我该怎么办?
- windows - 删除文件夹中的所有文件,但跳过包含特定字符串的文件
- python - 通过函数创建名称中具有不同数字的变量
- python - Python多线程或多进程解析文本数据
- powershell - 从 CSV 文件中过滤启用的 AD 用户
- reactjs - 如何将 react-webcam 视频流发送到烧瓶 api 进行反卷积?
- c - 如何在 C 中使用进程中的线程数组
- java - 如何在 Java 中使用 Google Drive API?