#python #class #methods #instantiation #init
#python #класс #методы #создание экземпляра #инициализация
Вопрос:
Я хочу запустить метод, который присваивает значения объекту, а не объявляет их в круглых скобках. У меня есть следующий код, который не работает. Я открыт для всех решений, включая те, которые включают методы, содержащиеся в конструкторе.
class Player:
def __init__(self, name):
self.name = name
#gather player detail method
def player_details():
return input('Name: ')
player1 = Player.player_details()
#I want the following line of code to output whatever the player name was entered as
print (player1.name)
Ответ №1:
ПОПРОБУЙТЕ этот код, используя getter setter
class Player: def init(self,name=»»): self.name = имя
метод получения
def get_player_details(self): возвращает self.name
метод установки
определение set_player_details(self, x): self.name = x
player1 = Player()
установка возраста с помощью setter
input_detail = input(«Введите имя игрока: «)
#установить ввод в качестве детали игрока player1.set_player_details(input_detail)
получение возраста с помощью getter
print(player1.get_player_details())
печать (player1.name )
Ответ №2:
Это то, что вы ищете? Похоже, вы случайно создали свой метод как «статический метод», то есть тот, который не обращается к атрибутам класса. Вы можете изменить это, добавив ‘self’ в качестве аргумента.
class Player:
def __init__(self, name):
self.name = name
#gather player detail method
def player_details(self):
self.name = input('Name: ')
player1 = Player.player_details()
# I want the following line of code to output whatever the player name was entered as
print (player1.name)
Ответ №3:
Здесь вы можете просто назначить как обычное свойство:
def player_details(self):
self.name = input('Name: ')
Или вы также можете получить аргумент:
def player_details(self, newName):
self.name = newName
Ответ №4:
Выполнение этого достигло того, чего я хотел, спасибо.
class Player:
def __init__(self, name =""):
self.name = input('Name: ')
#creating an instance of the Player class prompts the user to input name
#say I input "Jo"
player1 = Player()
#prints out "Jo"
print (player1.name)