在Python中访问成员变量?

时间:2018-11-22 07:03:48

标签: python class oop member

我最近开始学习python(来自C ++背景),但是我不明白如何访问成员变量(nonce)并在名为def mine_block()的第二个函数中使用它。并非所有此类成员都可以在任何地方公开访问吗?

class Block:
    '''
    Дефинираме ф-я , която създава
    променливите като членове на класа Block
    '''
    def _init_(self,prevHash,index,nonce,data,hash,time):
        self.prevHash = prevHash
        self.index = index
        self.nonce = nonce
        self.data = data
        self.hash = hash
        self.time = time

    def get_hash(self):
        print(self.hash)

    def mine_block(self,difficulty):
        arr = []
        for i in range(difficulty):
            arr[i] = '0'
        arr[difficulty] = '\0'
        str = arr
    while True:
        '''
        here I receive an error
        unresolved referene nonce
        '''
        nonce++

2 个答案:

答案 0 :(得分:1)

要在类方法中引用类属性,您需要使用关键字self将对象本身传递到方法中。然后,您可以使用self.foo访问其他类方法和类属性。

此外,不应在类的根级别缩进while True循环。最后,foo++ C样式在Pyhton中不正确,应为foo += 1

答案 1 :(得分:1)

在Python中,所有实例成员都可以通过类实例公开获得,该类实例以self的形式传递给类方法。因此,您应该使用self.nonce

此外,在Python中要小心缩进。您的mine_block方法应类似于:

def mine_block(self,difficulty):
    ...
    str = arr
    while True:
        self.nonce += 1