Доступ к переменной-члену в Python? - PullRequest
0 голосов
/ 22 ноября 2018

Я недавно начал изучать 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 голосов
/ 22 ноября 2018

В Python все члены экземпляра общедоступны через экземпляр класса, который передается в методы класса как self.Следовательно, вы должны использовать self.nonce.

Кроме того, в Python будьте осторожны с отступами.Ваш метод mine_block должен выглядеть следующим образом:

def mine_block(self,difficulty):
    ...
    str = arr
    while True:
        self.nonce += 1
0 голосов
/ 22 ноября 2018

Чтобы обратиться к атрибутам класса в методах класса, вам нужно передать сам объект в методы с ключевым словом self.Затем вы можете получить доступ к другим методам класса и атрибутам класса с помощью self.foo.

. Кроме того, цикл while True не должен иметь отступ на корневом уровне внутри класса.И, наконец, стиль foo++ C неверен в Pyhton, он должен быть foo += 1

...