修改属性2(python练习)

请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似'NiuNiu‘s salary is 4000, and his age is 22'的语句。

请根据输入的信息为Employee类创建一个实例e,调用hasattr方法检验实例有没有属性age,如果存在属性age直接调用printclass输出,否则使用setattr函数为其添加属性age,并设置值为输入后,再调用printclass输出。

输入描述:

三行分别依次输入姓名name、工资salary、年龄age,其中第一行为字符串,后两行为整型数字。

输出描述:

第一行输出e有没有属性age,True或者False;

第二行输出printclass打印信息。

示例1

输入:

NiuNiu
4000
23

输出:

False
NiuNiu'salary is 4000, and his age is 23

本题涉及属性访问方法。

一般可以用‘.’来访问属性,比如emp.name时访问emp类实例的name值。

除此以外,python还提供了一些方法对类实例的属性值进行一些访问和操作。

getattr(obj, name[, default]) : 访问对象的属性值 。

hasattr(obj,name) : 检查是否存在一个属性,如果存在则返回True,反之返回False。

setattr(obj,name,value) : 设置一个属性,修改该属性值。如果属性不存在,会创建一个新属性。

delattr(obj, name) : 删除属性。

class Employee:
    def __init__(self,name,salary):
        self.name=name
        self.salary=salary
    
    def printclass(self):
        print("{name}'salary is {salary}, and his age is {age}".format(name=self.name,salary=self.salary,age=self.age))


name=input()
salary=int(input())

emp=Employee(name,salary)
age=int(input())

print(hasattr(emp,'age'))
if hasattr(emp,'age'):
    emp.printclass()
else:
    setattr(emp,'age',age)
    emp.printclass()
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值