从类dynamic
调用函数dynamic_exit
时出现问题,该函数是从项目文件中导入的python文件调用的。只包含足够的代码来描述我的问题的有效示例
调用下面的示例:
from lib.core import dynamic
import ...
if requests.get(url).status_code != 200:
clear()
print(" xxxxx \n\n\n")
print("[ !! | Invalid URL ] Status code: {0}".format(
str(requests.get(url).status_code)))
time.sleep(1)
print("\n\n Please enter a valid URL.\nExiting...")
dynamic.dynamic_exit(self=dynamic())
time.sleep(3)
exit()
Lib.core
包含:
class dynamic:
def __init__(self):
self.loadSwitch = False
self.analyzeSwitch = False
self.exitSwitch = False
def dynamic_load(self, loadSwitch=True):
self.loadSwitch = loadSwitch
done = False
for c in itertools.cycle(['[ | ]', '[ / ]', '[ - ]', '[ \\ ]']):
if done:
break
sys.stdout.write('\rLoading ' + c)
sys.stdout.flush()
time.sleep(0.1)
# Further along...
if dynamic.dynamic_analyze(): # Separate function -- Irrelevant
t = threading.Thread(target=dynamic_analyze())
t.start()
elif dynamic_exit(): # Separate function -- Irrelevant
t2 = threading.Thread(target=dynamic_exit())
t2.start()
else: # dynamic_load -- Example function
t3 = threading.Thread(target=dynamic_load())
t3.start()
sys.stdout.write('\r[ ✓ ] Process Complete ')
time.sleep(4.5)
done = True
loadSwitch = False
exitSwitch = False
analyzeSwitch = False
天啊,我知道这是一团糟。第一次实际使用这样的课程
错误如下:
File "~/test-delete.py", line 11, in <module>
from lib.core import dynamic
File "~/lib/core.py", line 55, in <module>
if dynamic.dynamic_analyze():
TypeError: dynamic_analyze() missing 1 required positional argument: 'self'
IDE需要的不仅仅是一个简单的self
参数,它建议使用self=
。所以不确定该如何处理
基本上,在__init__
函数的上下文中需要帮助,并使用self
参数。尝试调用函数设置exitSwitch
、analyzeSwitch
或loadSwitch
=True
,如果switch == True
,则执行函数dynamic_load
、dynamic_exit
或dynamic_analyze
。完成后,将所有开关设置回False
问题是,您调用实例方法的方式就好像它们是静态方法一样。换句话说,您将这些方法称为
dynamic.dynamic_analyse()
,其中dynamic
是对类的引用,而不是对该类的实例的引用因此,请按以下步骤进行:
用PascalCase命名你的类,这是区分类和其他类的常见做法。所以你的名字应该是
Dynamic
创建实例并将其分配给变量。这一个实际上可以用小写字母获得名称
dynamic
在实例上调用方法时,不要将实例作为参数传递。因为在符号
a.b()
中,将调用b
,而self
的值设置为a
因此,将类定义为:
导入该类并创建如下实例:
您的退出代码应包含:
我不能对代码的其余部分发表评论,因为很难判断它在做什么。例如,我确实想知道为什么您两次调用
dynamic_analyse()
。。。但这至少可以解决你所犯错误的问题相关问题 更多 >
编程相关推荐