访问 Python 中的成员变量?

Accessing member variable in Python?

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

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] = '[=11=]'
        str = arr
    while True:
        '''
        here I receive an error
        unresolved referene nonce
        '''
        nonce++

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

访问其他 class 方法和 class 属性

此外,while True 循环不应在 class 的根级缩进。最后,foo++ C-style在Pyhton中不正确,应该是foo += 1

在 Python 中,所有实例成员都可以通过 class 实例公开获得,该实例作为 self 传递给 class 方法。因此你应该使用 self.nonce.

此外,在 Python 中注意缩进。您的 mine_block 方法应该如下所示:

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