delattr 函數用于刪除屬性。
delattr(x, 'foobar') 相等于 del x.foobar。
語法
setattr 語法:delattr(object, name)
參數
英文文檔:
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.說明:
定義類
#coding=utf-8# class_my.py 定義類 (新式類)# 定義類class Person: # 類屬性 (class) (注:類/類方法 能修改類屬性; 對象不能修改類屬性,更改的只是實例屬性) name = "name" # 公共屬性 __adress = "adress" # 私有屬性 (__屬性 表示私有) # 構造方法(對象創建調用) (__init__ 表示構造) def __init__(self, name, address = "地球"): # 實例屬性 self.name = name # (注:類屬性與實例屬性名稱相同時用實例屬性,實例屬性被刪除后使用類屬性) self.__adress = address Person.setData(self) # 析構方法(對象銷毀調用) (__del__ 表示析構) def __del__(self): print("對象被銷毀.") # toString() def __str__(self): return "Person.class" # 實例方法 (this) def setName(self, name): # self可為其他字符串 (this) self.name = name; # 修改 實例屬性 (不存在自動添加) # 類方法 (static) @classmethod def setName_cls(cls, name): cls.name = name # 修改 類屬性 # 靜態方法 (tools) @staticmethod def setName_sta(name): # (注:參數部分) return name def getName(self): return self.name def setData(self): # 實例屬性 self.__age = 21 # 私有屬性 self.sex = "女" # 公共屬性 def show(self): print("Hello! %s"%self.name) print("Address:%s"%self.__adress) # 使用自身私有屬性 self.__eat() # 使用自身私有方法 def __eat(self): # 私有方法 print("eat")# ======= 函數調用 ======if __name__ == "__main__": # - 創建對象 - ps = Person("LY") # --- 調用方法 --- # 調用實例方法 ps.setName("LY") # 實例調用 實例方法 ps.show() # 調用類方法 Person.setName_cls("Person") # 類調用 類方法 ps.setName_cls("Person") # 實例調用 類方法 # 調用靜態方法 () print(ps.setName_sta("Per")) # 實例調用 靜態方法 print(Person.setName_sta("Per")) # 類調用 靜態方法 # --- 訪問屬性 --- print(ps.getName()) print(ps.name) # 訪問 類屬性 的公共屬性值 print(ps.sex) # 訪問 實例屬性 的公共屬性值 # --- 修改屬性 --- # 修改實例屬性 ps.name = "123" # 修改 類屬性 (注:并非真修改,只是向對象中創建了一個實例屬性) del ps.name # 刪除 實例屬性 (注:實例不能(非類方法)刪除 類屬性, 只是刪除了對象中創建的實例屬性,類屬性依然存在) del ps.sex # 刪除 實例屬性 (注:真刪除,刪除后不能訪問) # 修改類屬性 Person.name = "Person" # 修改類屬性 Person.setName_cls("Person") # 類 調用 類方法 修改 類屬性 (注:類不能調用實例方法) ps.setName_cls("Person") # 對象 通過 類方法 修改 類屬性 del Person.name # 刪除類屬性 # - 刪除對象 - del ps # > Less is more! "靜態方法"和"類方法/屬性"同級都可理解為"靜態",靜態方法適合做工具箱,類方法/屬性可認為在靜態區,隨手拿來即用,而實例則需要實例化才能使用. (--本人的個人理解)# ======= 函數調用 ======
新聞熱點
疑難解答