Как использовать элементы в словаре из класса? - PullRequest
0 голосов
/ 30 сентября 2018

Я хотел бы, чтобы при печати использовались местоимения персонажа по полу:

"Царская гвардия" тянет "свой" меч.

"его" является важной частью.

Я получаю эту ошибку: Ошибка типа: местоимение () отсутствует 1 обязательный позиционный аргумент: 'self'

class Player(object):
    # instantiates each character with a range of functions
    def __init__(self, name, health, lives, gender, inventory):
        self.name = name
        self.health = int(health)
        self.lives = int(lives)
        self.gender = gender
        self.inventory = []

    def pronoun(self):

        if 'male' in self.gender:
            nouns = {
                'them': 'he',
                'their': 'his'
            }
        if 'female' in self.gender:
            nouns = {
                'them': 'she',
                'their': 'her'
            }

        return nouns

player = Player("Kate", 100, 3, 'female', 'Axe')
kingsguard = Player("The Kings Guard", 150, 1, 'male', None)
a_noun = Player.pronoun()

print(kingsguard.a_noun['them'])

1 Ответ

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

Ваша логика усложняет проблему.Вы можете получить доступ к методу класса экземпляр напрямую:

print(kingsguard.pronoun()['them'])  # 'he'

a_noun = Player.pronoun() не будет работать должным образом, так как класс должен знать, к какому экземпляру pronoun принадлежит.В противном случае он не сможет получить доступ к self.gender.

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