首页 > 解决方案 > 在同一个类的方法之间共享变量

问题描述

我一直在尝试共享一个在同一类的方法之一中本地声明的变量:

class test:

    def __init__ (self,a,b):

         self.a=a
         self.b=b

    def x(inputList):

         container = [test(x[0],x[1]) for x in inputList]

         for i in range (0,2):
               print("\n")
               print(container[i].a)
               print(container[i].b)

考虑:

xyz=[["abc","cde"],["fgh","ijk"],["lmn","opq"]]

我跑:

test.x(xyz)

结果是:

abc
cde


fgh
ijk


lmn
opq

这是我所期望的(“容器”列表包含“测试”类中的对象)。但是,我想在“test”类的另一种方法中访问“容器”值,例如:

def y():

    rst=container[2].a

    print(rst)

我收到消息错误:

NameError: name 'container' is not defined

有什么解决方法吗?也许某种方法的继承......

我尝试使用以下内容:

课堂测试:

def __init__ (self,a,b,container):

    self.a=a
    self.b=b
    self.container=container

def x(inputList):

    container = [test(x[0],x[1]) for x in inputList]

    for i in range (0,3):
        print("\n")
        print(self.container[i].a)
        print(self.container[i].b)

但是,当我尝试运行时:

test.x(xyz)

我得到:

TypeError: __init__() missing 1 required positional argument: 'container'

我知道我必须更改段落:

container = [**test(x[0],x[1]**) for x in inputList]

对此有什么猜测吗?

标签: pythonoop

解决方案


推荐阅读