def OP():
web = webdriver.Chrome()
web.get(r'http://')
def sendstr(M):
global web
web.find_element_by_css_selector('') #2 然后错在这行
def U():
sendstr('linl') #1 调用sendstr()
这样会提示:NameError: name 'web' is not defined
这样怎么使用web,,,,我用return也无效
一定要放到函数外吗?
web = webdriver.Chrome()#这个应该移到函数外。建议学习一下作用域
def OP():
web.get(r'http://')
def sendstr(M):
web.find_element_by_css_selector('') #2 然后错在这行
######原来这么写只能放到外面啊######
要么用面向对象的方式class self.web . 要么在开始定义全局变量web 加上global
######两个函数里都要加global
######用闭包
再来看看专业的解释:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。
1 2 3 4 5 6 7 8 9 10 11 |
|
命名规范建议:建议函数的名字尽量小写,必要时用下划线分隔以增加可读性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。