Python调用问题__init__(self,driver)
在工作中遇见这样一个问题,防止以后忘记,记录该问题
一、有2个py文件basepage.py和baidu_search.py
basepage.py
在baidu_search.py中调用上面的py文件
二、有另外2个py文件,browser_engine.py和testabby.py
browser_engine.py文件
在testabby.py中调用上面哪个py文件
分析一和二中的代码,比较迷惑的是,同样的构造函数
但是在调用的时候却不一样,一的调用是
二的调用是
一个后面带的参数是driver,一个是self,为什么这样?
根据Log日志去判断,在一中
打印的日志为:<test.basepage.BasePage object at 0x0000000005600D68>
在二中
打印的日志为:<test.browser_engine.BrowserEngine object at 0x0000000004C8B9E8>
发现打印的日志一样。根据对比代码,发现在一中,
的调用是在def方法外部,且其中的driver是外部传入的driver
而不是这里面的driver
在二中
的调用是在def方法内部,且其中的self是当前
TestBrowserEngine本身。
总结,在调用class类时,如果有
构造函数,它和class调用本身没有关系,而和class的调用的地方有关系,如果在def内部去调用,则使用self的方式,如果在def外部去调用,括号中的值则可以是外部传入的值。因为有
所以调用的时候,必须带一个参数