Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从OOP中的字典中获取值:";“属性错误”;_Python_Oop_Dictionary - Fatal编程技术网

Python 从OOP中的字典中获取值:";“属性错误”;

Python 从OOP中的字典中获取值:";“属性错误”;,python,oop,dictionary,Python,Oop,Dictionary,我正在尝试从字典值中获取值。我的程序创建可能的位置组合并获取最后一个位置。然后我想得到这个值。这里的一切都很好,除了指定的。get_值方法。当我执行此代码时,我收到: AttributeError:“组合”对象没有属性“获取值” 理论上这应该很容易,但我是OOP新手,我不知道这里出了什么问题 X = ['A','B','C'] Y = ['1','2','3'] VALUES = {'A':10, 'B': 50, 'C':-20} class Combination: def

我正在尝试从字典值中获取值。我的程序创建可能的位置组合并获取最后一个位置。然后我想得到这个值。这里的一切都很好,除了指定的。get_值方法。当我执行此代码时,我收到:

AttributeError:“组合”对象没有属性“获取值”

理论上这应该很容易,但我是OOP新手,我不知道这里出了什么问题

X = ['A','B','C']  
Y = ['1','2','3']

VALUES = {'A':10, 'B': 50, 'C':-20}

class Combination:
    def __init__(self,x,y):
        if (x in X) and (y in Y):
            self.x = x
            self.y = y
        else:
            print "WRONG!!"

    def __repr__ (self):
        return self.x+self.y

    def get_x(self):
        return self.x

    def get_y(self):
        return self.y

class Position:
    def __init__(self):
        self.xy = []
        for i in X:
            for j in Y:
                self.xy.append(Combination(i,j))

    def choose_last(self):
        return self.xy.pop()

    def __str__(self):
        return "List contains: " + str(self.xy)

class Operation1:
    def __init__(self):
        self.operation1 = []

    def __str__(self):
        s = str(self.operation1)
        return s

    def get_value(self):
        V = VALUES.get(self)
        return V

pos = Position()
print pos
last_item = pos.choose_last()
print "Last item:", last_item, pos

last_value = last_item.get_value() # <---- Here is a problem
X=['A','B','C']
Y=['1','2','3']
值={'A':10,'B':50,'C':-20}
班级组合:
定义初始化(self,x,y):
如果(x中的x)和(y中的y):
self.x=x
self.y=y
其他:
打印“错误!!”
定义报告(自我):
返回self.x+self.y
def get_x(自身):
返回self.x
def get_y(自我):
回归自我
班级职务:
定义初始化(自):
self.xy=[]
对于X中的i:
对于Y中的j:
self.xy.append(组合(i,j))
def选择_last(self):
返回self.xy.pop()
定义(自我):
return“列表包含:”+str(self.xy)
类别操作1:
定义初始化(自):
self.operation1=[]
定义(自我):
s=str(自操作1)
返回s
def get_值(自身):
V=值。获取(自身)
返回V
pos=位置()
打印位置
最后一项=位置。选择最后一项()
打印“最后一项:”,最后一项,pos
last_value=最后一项。获取_value()
  • 您正在将
    组合的对象添加到
    位置的
    xy
    中。当您说
    选择\u last
    时,它将返回插入
    xy
    的最后一个
    组合
    对象。您正试图调用
    组合
    对象上的
    get\u value
    方法,该对象没有该方法。这就是为什么你会犯这样的错误

  • 始终使用新样式类


  • 我是否可以使用Operation1类来获取此值?因为以后我想多使用这个类?