我想制作一个包含first_name
和last_name
属性的Person类,这些属性传递到__init__
方法中。然后,我想添加一个名为full_name
的属性,该属性返回名字和姓氏以及它们之间的空格。然后,我还想添加一个名为name
的属性,该属性以姓氏的格式一起返回名称,后跟一个逗号和一个
空格,后跟名字。
下面是一个示例输出。
from Code4 import Person
teacher = Person("D", "C")
teacher.last_name
'C'
teacher.full_name
'D C'
teacher.name
'C, D'
我对于如何为此类输出编写代码感到困惑。
答案 0 :(得分:1)
使用@property
装饰器(这样,您只能使用括号输入Person.name
而不是Person.name()
:
class Person:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
@property
def full_name(self):
return f'{self.first_name} {self.last_name}'
@property
def name(self):
return f'{self.last_name}, {self.first_name}'
teacher = Person('D', 'C')
print(teacher.last_name)
print(teacher.full_name)
print(teacher.name)
打印:
C
D C
C, D
答案 1 :(得分:1)
您也可以尝试以下代码。
尝试在http://rextester.com/ILKVMO81621的nline代码上找到
class Person(object):
def __init__(self, first_name, last_name):
"""
Constructor function that sets properties
"""
self.first_name = first_name
self.last_name = last_name
self.full_name = self.first_name + " " + self.last_name
self.name = self.last_name + ", " + self.first_name
if __name__ == "__main__":
person1 = Person("Anders", "Rossum")
print(person1.full_name) # Anders Rossum
print(person1.name) # Rossum, Anders
答案 2 :(得分:0)
这就是我解决此问题的方式。
class Person:
def __init__(self,first_Name,last_Name):
self.firstName = first_Name
self.lastName = last_Name
def full_name(self):
fullname = self.firstName + ' ' + self.lastName
print(fullname)
def name(self):
name = self.lastName + ', ' + self.firstName
print(name)
person1 = Person('D','C')
print(person1.lastName)
person1.full_name()
person1.name()
答案 3 :(得分:-1)
您可以在类中创建名为full_name的方法,并在“老师”对象上调用该名称时,将打印出所需的输出。在init()函数中,传入的输入“ D”和“ C”被分配给变量,您可以简单地以特定方式打印或返回这些变量以实现所需的输出。
请参阅以下代码以供参考:
class Person:
def __init__(self, first, last):
self.__first = first;
self.__last = last;
def full_name():
print(self.__first + " " + self.__last)
def name():
print(self.__last + ", " + self.__first)
如果某些语法错误,请随时纠正我。