1. 程式人生 > 程式設計 >python中delattr刪除物件方法的程式碼分析

python中delattr刪除物件方法的程式碼分析

最近我們針對物件屬性這塊,介紹了不少關於測試屬性的方法。在進行一系列測試後,我們發現這個屬性並不需要,這時候就要用到刪除的功能。在python中可以選擇delattr函式刪除物件的屬性,基於它的刪除功能,是否能擴充套件到刪除的物件的方法上,在我們對delattr函式進行全面瞭解後,展開例項的測試。

1.說明  

函式作用用來刪除指定物件的指定名稱的屬性,和setattr函式作用相反。

不能刪除物件的方法。

2.引數

object -- 物件。

name -- 必須是物件的屬性。

3.返回值

無。

4.例項

>>> 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
>>>

通過測試的結果,我們可以看出delattr函式並不能刪除物件的方法,只針對於屬性有刪除的功能,不然就會報錯。相信本篇的實戰程式碼演示能讓大家對注意點有一個深刻的印象。

Python3基礎 delattr 刪除物件的屬性

class MyClass:
  # num是類屬性
  num = 1

  def __init__(self,name):
    self.name = name


def main():
  test = MyClass("shemingli")

  # 刪除類屬性
  # 刪除類屬性要寫類名,而不是例項名
  delattr(MyClass,"num")

  # 刪除例項屬性
  delattr(test,"name")

  """
    def delattr(o: Any,name: str)
    Inferred type: (o: Any,name: str) -> None

    Deletes the named attribute from the given object.
    delattr(x,'y') is equivalent to ``del x.y''
  """
  # 注:如果屬性不存在,就丟擲異常


if __name__ == '__main__':
  main()

到此這篇關於python中delattr刪除物件方法的程式碼分析的文章就介紹到這了,更多相關python中delattr可以刪除物件方法嗎內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!