先上代码
#! coding:utf-8
class Statsout(object):
name = "test"
def test(self, data):
print "\n\n"
print data
def getattr_test(self, formats=None, data=None):
print (u"注解:hasattr()函数判断一个类是否存在formats对应这个属性, 存在则返回True, 不存在返回False")
print (u"注解:getattr()函数返回formats对应这个属性的值")
if formats is not None and hasattr(self, formats):
print_function = getattr(self, formats)
return print_function(data)
def setattr_test(self, data=None):
print (u"注解: setattr()函数是为一个类创建一个属性或者修改属性的值!!!")
print (u"注解: 已经存在的属性,我们修改属性的值\n")
if data is not None and hasattr(self, data):
print u"name属性的原始值", self.name
setattr(self, data, "sdfsfsdfs")
print u"name属性的修改后的值", self.name, "\n"
print (u"注解: 属性不存在, 创建并赋值\n")
print hasattr(self, "age")
print u"注解: 返回False说明属性age不存在 "
setattr(self, "age", "18")
print hasattr(self, "age")
print u"注解: 返回True说明age属性创建成功"
print u"age属性的值",getattr(self, "age"), "\n"
print (u"注解: delattr()删除一个类中对应的属性")
print (u"注解: 删除刚才创建的age属性并判断是否存在,没有删除则返回True,已删除则返回False\n")
delattr(self, "age")
print hasattr(self, "age")
print u"注解: 返回False说明age属性已被删除"
# 调用 getattr_test()函数
# Statsout().getattr_test(formats="test", data=u"python 回炉训练")
# 调用 setattr_test()函数
# Statsout().setattr_test(data="name")
调用getattr_test() 并传入参数
Statsout().getattr_test(formats="test", data=u"python 回炉训练")
输出结果如下:
E:\usr\Anaconda2\python.exe D:/workspace/ProxyManger/pythontext/gettartest.py
注解:hasattr()函数判断一个类是否存在formats对应这个属性, 存在则返回True, 不存在返回False
注解:getattr()函数返回formats对应这个属性的值
python 回炉训练
Process finished with exit code 0
调用setattr_test() 并传入参数
Statsout().setattr_test(data="name")
输出结果如下:
E:\usr\Anaconda2\python.exe D:/workspace/ProxyManger/pythontext/gettartest.py
注解: setattr()函数是为一个类创建一个属性或者修改属性的值!!!
注解: 已经存在的属性,我们修改属性的值
name属性的原始值 test
name属性的修改后的值 sdfsfsdfs
注解: 属性不存在, 创建并赋值
False
注解: 返回False说明属性age不存在
True
注解: 返回True说明age属性创建成功
age属性的值 18
注解: delattr()删除一个类中对应的属性
注解: 删除刚才创建的age属性并判断是否存在,没有删除则返回True,已删除则返回False
False
注解: 返回False说明age属性已被删除
Process finished with exit code 0