我对 python 和 OOP 真的很陌生,只是想掌握一些事情的窍门。但这我不是很了解。我有这个简单的类,但是当我运行它时,我得到'Person' object has no attribute 'first'。所以我在这里读到这是因为 ._ (私有变量)。我可以以某种方式访问它们吗?如果我然后删除 ._ 并拥有公共类(我猜),我会得到这个'str' object is not callable。因此,如果我理解正确,我正在用字符串覆盖一个函数,这是在我声明 p1 和 p2 的地方发生的吗?我怎样才能解决这个问题?
class Person:
def __init__(self, **kwargs):
self._first = kwargs['first']
self._last = kwargs['last']
self._age = kwargs['age']
def first(self):
return self._first
def last(self):
return self._last
def age(self):
return self._age
def printPerson(o):
print('The persons name is {0} {1} and the age is
{2}.'.format(o.first(), o.last(), o.age()))
def main():
p1 = Person(first='John', last='Stevenson', age=35)
p2 = Person(first='Ash', last='Bradley', age=35)
printPerson(p1)
printPerson(p2)
if __name__ == '__main__': main()