码迷,mamicode.com
首页 > 编程语言 > 详细

Python内置函数(14)——delattr

时间:2016-10-23 12:13:48      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:file   scn   eth   删除对象   shel   方法   error:   let   relative   

英文文档:

delattr(object, name)
  This is a relative of setattr(). The arguments are an object and a string. The string must be the name of one of the object’s attributes. The function deletes the named attribute, provided the object allows it. For example, delattr(x, ‘foobar‘) is equivalent to del x.foobar.
说明:
  
  1. 函数作用用来删除指定对象的指定名称的属性,和setattr函数作用相反。
#定义类A
>>> class A:
    def __init__(self,name):
        self.name = name
    def sayHello(self):
        print(hello,self.name)

#测试属性和方法
>>> a.name
小麦
>>> a.sayHello()
hello 小麦

#删除属性
>>> delattr(a,name)
>>> a.name
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    a.name
AttributeError: A object has no attribute name

   2. 当属性不存在的时候,会报错。

>>> a.name #属性name已经删掉,不存在
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    a.name
AttributeError: A object has no attribute name

>>> delattr(a,name) #再删除会报错
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    delattr(a,name)
AttributeError: name

   3. 不能删除对象的方法。

>>> a.sayHello
<bound method A.sayHello of <__main__.A object at 0x03F014B0>>
>>> delattr(a,sayHello) #不能用于删除方法
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    delattr(a,sayHello)
AttributeError: sayHello
>>> 

 

Python内置函数(14)——delattr

标签:file   scn   eth   删除对象   shel   方法   error:   let   relative   

原文地址:http://www.cnblogs.com/sesshoumaru/p/5989234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!