Self - это имя переменной, представляющее экземпляр класса. Это параметр для ссылки на текущий объект класса. Используя его, мы можем получить доступ к параметрам и методам класса.
Причина, по которой вам нужно использовать self, состоит в том, что Python не использует синтаксис @ для ссылки на атрибуты экземпляра.
Примечание: вы можете назвать эту переменную как угодно. Но это должен быть первый параметр. Например:
class Player:
def__init__(myclassobj, score):
myclassobj.score = score
myclassobj.username ...
...
...
Вы получаете сообщение об ошибке:
AttributeError: 'Player' object has no attribute 'upper'
, потому что, когда вы говорите self.upper, он ищет атрибут в экземпляре класса, а вы не определили ни одного верхний атрибут.
В приведенном ниже коде:
self - это объект для указания экземпляра класса метода. И оценка не может использоваться с .upper, поскольку она имеет целочисленный тип.
class Player:
def __init__(self, score,):
self.score = score
self.username = str(score)
self.password = str((score.upper()))
player1 = Player(0)
print(player1.password)
По моему мнению, это должно быть:
class Player:
def __init__(self, score, username, password):
self.score = score
self.username = str(username)
self.password = str((password.upper()))
player1 = Player(0, 'ABC', 'abc@123')
print(player1.password)