Python - 函数属性方法装饰器
Posted 幼时清华梦丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - 函数属性方法装饰器相关的知识,希望对你有一定的参考价值。
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 MethodType class 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 - 函数属性方法装饰器的主要内容,如果未能解决你的问题,请参考以下文章
Python使用@property装饰器--getter和setter方法变成属性