作者trenteric (专业社畜)
看板Python
标题[问题] import其他.py中的涵式请益
时间Tue Apr 19 22:56:19 2022
我会有a.py, b.py, c.py...等程式爬各网站
最後会全部import到x.py运行
我的chromedriver路径是一串涵式
简化後大概如下
---- a.py ----
def a_main():
driver = webdriver.Chrome(chromedriver())
driver.get('url')
---- x.py ----
from a.py import a_main
def chromedriver():
((函式内容 略))
return chromedriver_path
def x_main():
chromedriver()
a_main()
x_main
运行後结果
---name 'chromedriver' is not defined
不懂为何会报错
我的x_main中已经先呼叫了chromedriver()
为何运行到a_main()时chromedriver又变成未定义了?
但如果把def chromedriver()放到a.py就不会报错了
但这样我就必须在abc...中都定义一次def chromedriver():
感觉有点冗
请问有办法只在我的x.py中定义一次chromedriver()就好吗?
-----
Sent from JPTT on my Google Pixel 6 Pro.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.202.52 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1650380186.A.E08.html
※ 编辑: trenteric (1.164.202.52 台湾), 04/19/2022 23:00:13
1F:推 ckbtlin318: 因为你一开始import a.py的时候 那个时候还没有定义 04/19 23:01
2F:→ ckbtlin318: chromedriver()这个function 试试看定义完後再import 04/19 23:03
3F:→ trenteric: 照你的方式调整是ok的,但这样等於我必须在abcd.py都定 04/19 23:08
4F:→ trenteric: 义一次chromedriver,是否有办法只定义一次就好? 可改变 04/19 23:08
5F:→ trenteric: 架构或写法 谢谢 04/19 23:08
6F:→ papple23g: 把chromedriver()作为参数传递给a_main就可以了? 04/19 23:17
初学者不是很懂,该如何参数化?
7F:推 lycantrope: 可以写个driver.py from driver import chromedriver 04/19 23:50
8F:推 germun: 再写个e定义crhomedriver让abcd去import e啊 04/20 00:13
此方法可行!! 楼上两位大神请受小第一拜 m(_ _)m
这样就不用在每个程式中重新定义chromedriver了
※ 编辑: trenteric (220.137.23.238 台湾), 04/20/2022 00:22:48