Python - 函数属性方法装饰器(二),,1.给类绑定属性值 


1.给类绑定属性值

    类名.属性名 =属性值

class Stu(object):    # 构造方法    def __init__(self):        print(‘我是一个学生‘)# 给类添加属性s = Stu()s.name = ‘Tom‘print(s.name)

    注:仅供当前对象使用

2.类、对象的属性操作

    setattr()函数用于设置属性值,该属性不一定是存在的。

    setattr(object, name, value)

        -object: 对象

        -name:对象属性,字符串

        -value:属性值


    hasattr()函数用于判断对象是否包含对应的属性。

    hasattr(object, name)

        -object: 对象

        -name:属性名,字符串


    getattr()函数用于返回一个对象属性值。

    getattr(object, name, value)

        -object: 对象

        -name:对象属性,字符串

        -value:属性值,默认为空

    注:当name不存在且存在默认值时getattr()函数返回默认值


class Stu(object):    # 构造方法    def __init__(self):        print(‘我是一个学生‘)# 给类设置属性setattr(Stu, ‘name‘, ‘Tom‘)# 实例化对象s = Stu()s1 = Stu()print(s.name)print(s1.name)# 判断Stu()是否有‘name’属性print(hasattr(Stu, ‘name‘))# 获取属性值,属性不存在时报错print(getattr(Stu, ‘name‘))# 属性不存在但设置了默认值时返回默认值print(getattr(Stu, ‘ame‘, ‘Jary‘))

技术图片

3.给对象和类绑定方法

from types import MethodTypeclass Stu(object):    # 构造方法    def __init__(self):        print(‘我是一个学生‘)# 类外部定义一个方法def set_age(self, age):    self.age = age# 给对象或类绑定方法s = Stu()s.set_age = MethodType(set_age, s)s.set_age(18)print(s.age)# 新建对象使用此方法报错# s2 = Stu()# s.set_age(18)# print(s2.age)

    注:仅供当前对象使用此方法新建对象使用此方法会报错(类没有此方法)

技术图片

    新建对象使用此方法:

技术图片

Python - 函数属性方法装饰器(二)

评论关闭