【发布时间】:2017-12-11 20:08:28
【问题描述】:
我正在尝试输出一个对象的详细信息,在这种情况下是(一个人),下面是整个代码
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很陌生,所以任何帮助都会很棒谢谢!
【问题讨论】:
-
1) 您的缩进不正确。请确保您的代码 sn-p 中的缩进与您的实际程序相匹配。请记住,在 Python 中,空格很重要。更改缩进会更改程序的语法。 2) 你希望
person = Person()在第 3 行做什么? -
删除顶部的
person=Person()。 -
请注意,您的错误与您的代码不匹配。
标签: python class object printing output