我试图输出一个对象的细节,在这种情况下(一个人),整个代码在下面
class Person:
person = Person()
def __init__(self):
self._first_name = str ()
self._last_name = str ()
self._day = int ()
self._month = int ()
self._year = int ()
def set_name(self, forename, surname):
self._first_name = forename
self._last_name = surname
def get_name(self):
return self._first_name + " " + self._last_name
def set_dob(self, d, m, y):
if self._is_valid_date(d, m):
self._day = int(d)
self._month = int(m)
self._year = int(y)
else:
return "Invalid date entered."
def get_dob(self):
return "{0}-{1}-{2}".format(self._day, self._month, self._year)
def get_age_at(self, d, m, y):
age = -1
if self.is_valid_date(d, m) and self._is_after_dob(d, m, y):
age = y - self._year
if (m < self._month) or (m == self._month and d < self._day):
age -= 1
return age
def get_details(self):
return "{0}, {1}".format(self.get_name(), self.get_dob())
john = Person()
john.set_name("John", "Lennon")
john.set_dob(8,10,1940)
print (john.get_details())
我期待,John Lennon 8 10 1940将被输出
我明白了:
line 1, in <module>
class Person:
line 3, in Person
john = Person()
NameError: name 'Person' is not defined
有什么想法吗?非常新的python所以任何帮助都会很棒谢谢你!
答案 0 :(得分:1)
据我所见,您的程序有三个错误:
缩进不正确。 import { AlertMock } from ...
...
messageAlert: AlertMock;
errorAlert: AlertMock;
之后和class Person:
之前的所有代码都应该向右缩进一次,或者通常是四个空格。
第john = Person()
行不正确。删除它。
您尚未定义person = Person()
。将其添加到您的班级定义中。
_is_valid_date()
此外,许多人发现使用&#34; setter&#34;和&#34; getters&#34;在Python糟糕的风格。当您了解如何使用def _is_valid_date(self, *args):
return True
获取和设置内部状态变量时,请考虑。