一 isinstance方法
判斷乙個物件是否是乙個類的物件
classfoo:
pass
f1 =foo()
isinstance(f1,foo)
二 issubclass方法
判斷兩個類是否是繼承關係
classfoo:
pass
class
woo(foo):
pass
print(issubclass(woo,foo))
三 反射(通過字串來反射/對映到類/物件的屬性上)
hasatter(物件,'屬性') 判斷物件中是否存在屬性name 本質原理:'name' in 物件.__dict__
getatter(物件,'屬性',none) 得到乙個物件中的屬性 如果該屬性不存在就返回none 本質原理:物件.__dict__['屬性']
setatter(物件,'屬性','值') 為物件新增乙個屬性 如果該屬性存在就修改 本質原理:物件.__dict__['屬性'] = '值'
delatter(物件,'屬性') 刪除物件的乙個屬性 本質原理:del 物件__dict__['屬性']
四 內建方法
__str__ 在物件被列印是觸發,可以用來定製物件被列印時的輸出資訊
注意:必須返回乙個字串型別的值
classfoo:
def__init__
(self,name,age):
self.name =name
self.age =age
def__str__
(self):
return
'%s %s
'%(self.name,self.age)
f= foo('
egon
',18)
print(f)
__del__ 在物件被刪除是自動觸發,可以用來**物件以外的其他相關資源,比如系統資源
#__del__: 在物件被刪除時先自動觸發該方法,可以用來**物件以外其他相關資源,比如系統資源
class
foo:
def__init__(self,x,filepath,encoding='
utf-8'):
self.x=x
self.f=open(filepath,'
rt',encoding=encoding)
def__del__
(self):
print('
run.....')
#**物件關聯的其他資源
self.f.close()
obj=foo(1,'
a.txt
')
物件導向 高階
json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...
物件導向高階
public class person public void print public class student extends person 重寫了父類方法 public void print public class demo public class demo 1.不能new這個類,只能靠...
物件導向高階
私有屬性,不能被子類繼承,在屬性的前面加上 就變為了私有屬性 私有方法,不能被子類繼承,在方法的前面加上 就變為了私有方法 只在前面加,後面不加,一般前後都有 的,屬於類當中自帶的方法或屬性 class class test1 str1 a 私有屬性 def init self pass def m...