赋值之前引用的局部变量/ Python

西德·加布里埃尔

我正在尝试设计一个计数器,每次执行操作时该计数器都会增加。像这样:

def action_on_accounts(self, accounts):
    for account in accounts[9:]: 
        try:
            self.browser.get(account)
            time.sleep(5)
            action_button = self.browser.find_element_by_xpath(u'//button[contains(@class, "Heart")]').click()
            counter_var = self.count_actions(counter_var)
            print(counter_var)
        except selenium.common.exceptions.NoSuchElementException:
            break

def count_actions(self, counter_var):
    return counter_var + 1

def main(self):

    counter_var = 0
    (...)

这是抛出 UnboundLocalError: local variable 'counter_var' referenced before assignment

我读过我必须声明counter_var为全局内部函数,并执行以下操作:

def count_actions(self, counter_var):
    global counter_var
    return counter_var + 1

它在扔SyntaxError: name 'counter_var' is parameter and global error

所以我尝试了这个:

def count_actions(self):
    global counter_var
    return counter_var + 1

这样调用:

counter_var = self.count_actions()
print(counter_var)

现在我有NameError: name 'counter_var' is not defined....

请协助

熊熊

您应该考虑将其定义counter_var为属性:self.counter_var在整个课程中都可以访问它(假设正在发生这种情况)。您无需在函数/方法中显式提供它作为参数,也不必担心全局变量。

def action_on_accounts(self, accounts):
    for account in accounts[9:]: 
        try:
            self.browser.get(account)
            time.sleep(5)
            action_button = self.browser.find_element_by_xpath(u'//button[contains(@class, "Heart")]').click()
            self.count_actions()
            print(self.counter_var)
        except selenium.common.exceptions.NoSuchElementException:
            break

def count_actions(self):
    self.counter_var += 1

def main(self):

    self.counter_var = 0
    (...)

但是,您可能想self.counter_var用您的类进行初始化

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中赋值之前引用的局部变量?

在Python中赋值之前引用的局部变量?

Python - UnboundLocalError:在循环中赋值之前引用的局部变量

UnBoundLocalError:赋值之前引用的局部变量(Python)

Python | 如果变量:UnboundLocalError:赋值之前引用了局部变量“变量”

Python - UnboundLocalError:在赋值之前引用了局部变量“d”

UnboundLocalError:赋值之前引用了局部变量'turn'-python

UnboundLocalError:在python闭包中赋值之前引用的局部变量

如何修复 UnboundLocalError:在 Python 中赋值之前引用的局部变量“df”

为什么python显示UnboundLocalError:赋值之前引用了局部变量'w'?

关于UnboundLocalError:在Python中赋值之前引用了局部变量'font_size'

修复UnboundLocalError:在python中赋值之前引用的局部变量“名称”

“在赋值之前引用了局部变量‘stringData’”python中的错误

Python / MySQL / Selenium - 赋值前引用的局部变量

赋值前引用的python unbroundlocalerror局部变量'机会'

分配之前可能会引用局部变量-Python

分配错误python 3之前引用的局部变量

分配Python 3.4.5之前引用的局部变量

为什么在赋值后定义 movex 时,python 3.5 会返回 UnboundLocalError:在赋值之前引用了局部变量“movex”

UnboundLocalError:在为一个变量赋值之前引用了局部变量“x”,而其他变量在 Python 中工作

Python – UnboundLocalError:赋值之前引用了局部变量'p'。While Loop根据我输入的时间提供不同的输出

在 Python 3.8 中赋值之前获取错误局部变量 XXXX

Python3 UnboundLocalError:赋值前引用了局部变量

将python编译为cython(赋值前引用的局部变量'webdriver')

python中的多处理-UnboundLocalError:赋值前引用了局部变量'data'

Python Hangman 问题(第 12 行:UnboundLocalError:赋值前引用的局部变量 'a')

赋值之前引用的局部变量“ request”

赋值之前引用的局部变量“ statement”

赋值之前引用的局部变量“ body”