加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在python中的函数之间共享变量?

发布时间:2020-12-20 13:03:27 所属栏目:Python 来源:网络整理
导读:我有2个函数fun1和fun2,分别作为输入字符串和数字.这两个输入都得到相同的变量a.这是代码: a = ['A','X','R','N','L']def fun1(string,vect): out = [] for letter in vect: out. append(string+letter) return outdef fun2(number,vect): out = [] for let
我有2个函数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)).

解决方法

面向对象的编程有助于:

class MyClass(object):
    def __init__(self):
        self.a = ['A','L']  # Shared instance member :D

    def fun1(self,string):
        out = []
        for letter in self.a:
            out.append(string+letter)
        return out

    def fun2(self,number):
        out = []
        for letter in self.a:
            out.append(str(number)+letter)
        return out

a = MyClass()
x = a.fun1('Hello ')
y = a.fun2(2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读