我目前有一个项目的一部分,我正在工作的工作解决方案。然而,在不使用全局变量的情况下,很难找到使事情按我所希望的方式运行的方法
我将我的工作复制如下:
x_age = ''
x_name = ''
def find_info(x, y):
global x_age
global x_name
x = 'Joseph'
y = '23'
x_name = x
x_age = y
def main():
find_info(x_name, x_age)
print('name is ' + x_name)
print('age is ' + x_age)
main()
我的目标是将在find_info()
内进行的赋值传递回相应的变量(x_name && x_age
)
我发现的一个工作环境如下所示:
def find_info():
x = 'Joseph'
y = '23'
return x, y
def main():
x_name, x_age = find_info()
print('name is ' + x_name)
print('age is ' + x_age)
main()
使用这个解决方案将意味着重构我代码的许多其他部分,如果我能帮助的话,我宁愿不重构。因此,我正在寻找一些关于如何在不使用global
的同时将x_name && x_age
传递给find_info()
的情况下实现我想要的结果(如上所述)的指导原则
根据您的实际工作,对类执行OOP可能是一个解决方案。我不建议使用类,除非您要在类中操作类中保存的数据
对于一个简单的数据容器,dict可能是一个更好的解决方案,并且是一种更具python风格的方法
这导致:
其他数据结构,比如NamedTuples,可能比这更方便。这完全取决于你想做什么
有一点是肯定的:这里不需要全局变量
你知道吗?如果不是,你应该学习它。这样就容易了
在这里,您可以根据需要多次重用Person类,如:
或者更好,您可以定义Person类的方法。你可以做
x.find_info()
相关问题 更多 >
编程相关推荐