我有Workflow.py
文件,其中包含以下功能:
class Workflow:
def Validation(self):
return print ("Validation Process Started..")
我还有另一个文件Cron.py
。
import schedule
import time
from Workflow import Validation
class Cron:
def my_job(self):
print('Foo')
Workflow.Validation()
def Start(self):
schedule.every(2).to(4).seconds.do(self.my_job)
while 1:
schedule.run_pending()
time.sleep(1)
A = Cron()
A.Start()
我正在尝试从Validation()
文件调用Workflow.py
中存在的Cron.py
函数。这两个文件都位于同一文件夹中。但是,代码给出了以下异常:
Traceback (most recent call last):
File "cron.py", line 3, in <module>
from Workflow import Validation
ImportError: cannot import name 'Validation'
请帮助任何人解决此错误。
答案 0 :(得分:1)
您在Workflow
文件中有一个Workflow
类,这就是您感到困惑的原因。没有Validation
可以导入,因为Validation
在类的内部(而不是文件)
正确的方法是:
from Workflow import Workflow
然后您可以这样称呼它:
Workflow.Validation()
但是,请注意,此函数不是立即定义的类方法或静态方法。如果您要这样调用它,它应该看起来像这样:
class Workflow:
@staticmethod
def Validation():
return print ("Validation Process Started..")
通常,如果您的方法内部未使用self
或cls
,则应为静态方法
答案 1 :(得分:0)
这应该有效
import Workflow
flow = Workflow.Workflow()
flow.Validate()
ps。您应该阅读静态方法,或者避免不必要地使用类