python类示例-记录和处理人员信息

1 python类示例-记录和处理人员信息

python的实例和类,与记录和程序扮演着类似的角色。

创建一个MyPerson类,用于记录和处理人员信息。

步骤 操作 描述
1 定义MyPerson类 class语句定义类
2 记录人员信息 构造函数记录人员信息
3 处理人员信息 类方法处理人员信息
4 打印人员信息 重载__str__()方法

1.1 类相关惯例

python约定俗成的惯例。

NO 类型 描述
1 模块名 以小写字母开头
2 类名 以大写字母开头
3 类方法 第1个入参为self

通常把有一致用途的代码编写在相同的模块。

1.2 定义Person类

创建一个myperson模块myperson.py文件,用于存放MyPerson类的代码。

定义MyPerson类,包括的人员信息:姓名,工作,工资。

1.3 构造方法记录数据

(1)人员信息,用实例对象属性记录。

(2)实例对象数据属性,通过在__init__()构造方法中给self属性赋值来生成。

(3)self自动指向当前调用方法的实例对象。

(4)每次创建实例对象会自动调用__init__()构造方法。

(5)每个实例对象对应一条人员记录。

# E:\documents\F盘\myperson.py
class MyPerson:
    def __init__(self,name,job = None,pay = 0):
        self.name = name
        self.job = job
        self.pay = pay
        
if __name__ == '__main__':
    mp1 = MyPerson('mp1')
    mp2 = MyPerson('mp2','c++开发',20000)
    
    print('mp1:name={0.name},job={0.job},pay={0.pay}'.format(mp1))
    print('mp2:name={0.name},job={0.job},pay={0.pay}'.format(mp2))
 
# 打开cmd,执行下面示例   
E:\documents\F盘>python myperson.py
mp1:name=mp1,job=None,pay=0
mp2:name=mp2,job=c++开发,pay=20000

1.4 实例行为处理数据

(1)实例对象的行为属性,用于处理人员信息。

(2)实例行为属性,通过类方法来定义。

所以,通过类方法来处理人员信息。

class MyPerson:
    def __init__(self,name,job = None,pay = 0):
        self.name = name
        self.job = job
        self.pay = pay
    def payraise(self,rate):
        self.pay = int(self.pay * (1 + rate))
    
if __name__ == '__main__':
    mp1 = MyPerson('mp1')
    mp2 = MyPerson('mp2','c++开发',20000)
    
    print('mp1:name={0.name},job={0.job},pay={0.pay}'.format(mp1))
    print('mp2:name={0.name},job={0.job},pay={0.pay}'.format(mp2))
    
    mp2.payraise(0.1)
    print('mp2:name={0.name},job={0.job},pay={0.pay}'.format(mp2))
# 打开cmd,执行下面示例       
E:\documents\F盘>python myperson.py
mp1:name=mp1,job=None,pay=0
mp2:name=mp2,job=c++开发,pay=20000
mp2:name=mp2,job=c++开发,pay=22000

1.5 重载打印__str__

python通过重载__str__()方法,让打印自动显示__str__()返回的字符串。

重载__str__(),让显示更友好,更有意义。

class MyPerson:
    def __init__(self,name,job = None,pay = 0):
        self.name = name
        self.job = job
        self.pay = pay
    def payraise(self,rate):
        self.pay = int(self.pay * (1 + rate))
    def __str__(self):
        return 'MyPerson:name={0.name},job={0.job},pay={0.pay}'.format(self)
        
if __name__ == '__main__':
    mp1 = MyPerson('mp1')
    mp2 = MyPerson('mp2','c++开发',20000)
    print(mp1)
    print(mp2)
    
    mp2.payraise(0.1)
    print(mp2)
# 打开cmd,执行下面示例   
E:\documents\F盘>python myperson.py
MyPerson:name=mp1,job=None,pay=0
MyPerson:name=mp2,job=c++开发,pay=20000
MyPerson:name=mp2,job=c++开发,pay=22000

你可能感兴趣的:(python,python)