我有两个函数fun1
和fun2
,它们分别接受一个字符串和一个数字作为输入。这两个也作为输入获取相同的变量a
。这是代码:
a = ['A','X','R','N','L']
def fun1(string,vect):
out = []
for letter in vect:
out. append(string+letter)
return out
def fun2(number,vect):
out = []
for letter in vect:
out.append(str(number)+letter)
return out
x = fun1('Hello ',a)
y = fun2(2,a)
函数执行一些无意义的操作。我的目标是重写代码,使变量a在函数之间共享,这样它们就不再将其作为输入。
删除变量a
作为输入的一种方法是在函数本身中定义它,但不幸的是这不是很优雅。
你能给我推荐一种可能的方法来达到我的目标吗?
函数应该以相同的方式操作,但是输入参数应该只是字符串和数字(fun1(string)
,fun2(number)
)。
使用类的替代方法: 您可以使用
global
关键字来使用位于函数外部的变量。这将打印6
但应尽量避免全局变量
面向对象编程有助于:
由于
a
是在函数作用域之外且在定义函数之前定义的,因此不需要将其作为参数馈送,只需使用a
。Python将首先查看变量是否在函数作用域中定义,如果没有,它将在该作用域之外进行查看。在这种情况下,您还可以将函数重写为更优雅的列表理解:
相关问题 更多 >
编程相关推荐