这是我的代码:
class fs_sync(object):
def check_source(self, id):
src = fb.get('/sources', id)
return src
def main():
...
src = check_source(data['source_id'])
if __name__ == "__main__":
main()
我无法识别check_source函数。我收到global name 'check_source' is not defined
错误。如果我使用self.check_source
调用它,则会收到错误global name 'self' is not defined
。
如何在类中调用一个简单的函数?
答案 0 :(得分:2)
首先,我不建议使用名为" main"的方法。
然后,如果fs_sync的类需要main,你应该写成如下
def fs_main(self):
...
src = self.check_source(data['source_id'])
否则,也许您可以创建一个名为utils或utils.py的目录或.py来包含您的常用功能。如下所示
在utils.py
中 def for_fs_main(fs_sync):
...
src = fs_sync.check_source(data['source_id'])
代码
from utils import for_fs_main
class fs_sync(object):
def check_source(self, id):
src = fb.get('/sources', id)
return src
if __name__ == "__main__":
fss = fs_sync()
for_fs_main(fss)
答案 1 :(得分:0)
self.functionName(parameters)
而不是functionName(parameters)
。在函数名称中,您需要添加self
,但在创建类时不必将其添加到类中。
如果你执行fb.get('/sources', id)
,则需要先导入fb。根据您提供给我们的代码,我不确定您是否已将其导入。
向else
添加if
是一种很好的编码习惯。
通常你也使用__init__
,但没有必要,这取决于你想要做什么。
您的代码应如下所示:
import fb
class fs_sync(object):
def check_source(self, id):
src = fb.get('/sources', id)
return src
def main(self):
...
src = self.check_source(data['source_id'])
if __name__ == "__main__":
main()