python - 在同一个类的方法之间共享变量
问题描述
我一直在尝试共享一个在同一类的方法之一中本地声明的变量:
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]
对此有什么猜测吗?
解决方案
推荐阅读
- html - CSS 显示网格高度问题。3998px 是网格的最大高度吗?
- rpm - 如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件
- c - 结果的类型是什么?可能吗?
- apache-spark - 使用结构化流一次将所有数据写入镶木地板文件
- ansible - 使用 Ansible-Playbook 接受 Splunk 许可协议
- java - Springboot中使用@ConfigurationProperties和@PropertySource时如何将属性序列化为对象?
- javascript - 如何在javascript中组合多个数组?
- python-3.x - 从 AWS Lambda 上的 S3 读取文件时出现 IncompleteReadError
- python-sphinx - 狮身人面像在 TOC 中不显示本地标题
- vue.js - 如何将我的数据存储在自定义 Vue 组件而不是根 Vue 实例中?