首页 > 解决方案 > 创建人员类

问题描述

我想创建一个包含传递给方法的属性first_name的Person 类。然后我想添加一个名为的属性,它返回名字和姓氏以及它们之间的空格。然后我还想添加一个名为的属性,它以姓氏的格式一起返回名称,后跟逗号和空格,然后是名字。last_name__init__full_namename

下面是一个示例输出。

 from Code4 import Person
    teacher = Person("D", "C")
    teacher.last_name
'C'
    teacher.full_name
'D C'
    teacher.name
'C, D'

我对如何为这种输出编写代码感到困惑。

标签: pythonpython-3.x

解决方案


使用@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

推荐阅读