首页 > 代码库 > 知识点:类2

知识点:类2

 

 

 

 

delattr(object, name) 删除object对象名为name的属性

参数object:对象。

参数name:属性名称字符串。

>>> class Person:
...     def __init__(self, name, age):
...             self.name = name
...             self.age = age
...
>>> tom = Person("Tom", 35)
>>> dir(tom)
[__doc__, __init__, __module__, age, name]
>>> delattr(tom, "age")
>>> dir(tom)
[__doc__, __init__, __module__, name]

 

 

属性函数(property)

 property([fget[, fset[, fdel[, doc]]]])

fget:属性被访问时执行的方法,fset:属性被赋值时执行的方法,fdel:属性被删除时执行的方法。

class C:
    def __init__(self , size=10):
        self.size = size

    def getSize(self):
        return self.size

    def setSize(self , value):
        self.size = value

    def delSize(self):
        del self.size

    x = property(getSize , setSize , delSize)


c1 = C()
c.getSize()  #>>> 10
c1.x         #>>> 10
c1.x=18
c1.x         #>>> 18
c.getSize()  #>>> 18
del c1.x
c1.size      #AttributeError: ‘C‘ object has no attribute ‘size‘
        

 

知识点:类2