我在使用selenium webdriver和python的自动化项目中遇到了一个概念。我有一个创建了一个包含Login脚本的模块。现在我想将Login.py中声明的变量用于其他测试用例。我在其他脚本中使用了导入模块功能。但是脚本因未找到变量错误而失败。
以下是该场景的简单表示:
1)Sample.py
class Integers():
def Sum(self):
a=6
b=3
print(a+b)
inst = Integers()
inst.Sum()
2)Test.py
import Sample
print(a)
当我运行Test.py时,它失败并显示错误:
NameError:未定义名称“a”。
有人可以帮帮我吗?我错过了什么吗?我刚开始使用Python并被困在这里
先谢谢。
答案 0 :(得分:0)
你显然不仅仅是#34;刚开始使用Python"但实际上"刚开始编程"。在您的代码段中,a
是函数中的局部变量。局部变量仅在函数执行期间存在,不能从函数本身之外的任何位置访问。这 - 变量范围的概念 - 实际上是编程中最基本的概念之一。
如果你想让函数中定义的值可用于其他代码,通常的解决方案是从函数中返回该变量:
# lib.py
def askusername():
username = input("username ?")
return username
然后:
# main.py
import lib
username = lib.askusername()
答案 1 :(得分:0)
如果a
具有常量值,则应将其定义为Integers
的静态成员:
class Integers:
a = 1
def Sum():
print(Integers.a + 5)
然后,您可以在导入课程print(YourModule.Integers.a)
后在'test.py'文件中写Integers
。