Как получить переменную в def __init__ в Python - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно получить переменную внутри def __init__.Код как показано ниже:

class HuffmanCode(object):

    def __init__(self, probabilities, digits):
        self.probabilities = probabilities
        #print (self.probabilities)
        self.huffman = huffman_nary_dict(probabilities, digits)
        #print (self.huffman)
        self.inv_huffman = inverse_dict(self.huffman)

Мне нужно позвонить self.inv_huffman за пределами class HuffmanCode.self.inv_huffman это набор словарей для конкретного символа, который мне нужно получить.

self.inv_huffman = {'m': '110', 'a': '0', 's': '10', 'y': '111'}

1 Ответ

0 голосов
/ 13 сентября 2018

Почти всегда плохая идея использовать global.

Просто доступ huffnam_code_instance.inv_huffman, где huffnam_code_instance = HuffmanCode(...).

Здесь huffnam_code_instance - это экземпляр класса HuffmanCode. Классы обычно существуют для создания экземпляров объектов, которые затем используются в вычислениях. См документация .

Переменная self в методах, включая __init__, указывает на экземпляр класса. В Python атрибуты экземпляра, такие как inv_huffman, являются общедоступными, поэтому в этом случае можно просто использовать доступ к атрибутам.

Обратите внимание, что, учитывая только класс, нелогично (и очень очень сложно) получить доступ к значению self.inv_huffman, потому что это атрибут экземпляра, а не атрибут класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...