import hashlib
password = "125156"
md5_obj = hashlib.md5("bin".encode())
md5_obj.update(password.encode())
ret = md5_obj.hexdigest()
print(ret)
#注:物件(即"bin"、password)在被雜湊(hash)之前一定要先編碼(encode)
1.私有屬性或靜態變數
雙下劃線
2.類中 三個裝飾器方法
classmethod 類方法
類方法(物件):「類方法(函式)->方法將函式轉換為類方法。類方法作為隱式第乙個引數接收類,就像例項方法接收例項一樣。要宣告乙個類方法,請使用以下成語:類c:@classmethoddef(cls,arg1,arg2,.):
classmethod
class classmethod_demo():
role = "dog"
@classmethod
def func(cls):
print(cls.role)
classmethod_demo.func()
f1 = classmethod_demo()
f1.func()
property 把乙個方法偽裝成屬性 使用之後呼叫不加括號
staticmethod 靜態方法
class staticmethod_demo():
role = "dog"
@staticmethod #靜態方法 下面的func不用傳參
def func():
print("123")
staticmethod_demo.func()
3.修改屬性值 屬性.setter (之前必須有乙個同名的方法被property裝飾過)
4.反射(最重要的知識點)通過字串的形式操作物件相關的屬性。python中的一切事物都是物件(都可以使用反射)
class foo():
f = "類的靜態變數"
def __init__(self,name,age):
self.name = name
self.age = age
def say_hi(self):
print("hi,%s"%self.name)
obj = foo("egon",73)
print(hasattr(obj,"name"))
print(hasattr(obj,"say_hi"))
4.1 getattr 獲取屬性
def getattr(object,name,default=none):getattr(object,name[,default])->值從乙個物件獲取乙個命名的屬性;getattr(x,『y』)等同於x.y。如果給定預設引數,則在屬性不存在時返回該引數;如果沒有該引數,則會引發異常
n = getattr(obj,"name")
print(n)
func = getattr(obj,"say_hi")
func()
print(getattr(obj,"aaaa","不存在啊")) 列印「不存在啊」 即屬性不存在時返回該引數
4.2 hasattr 檢測是否含有某種屬性
def hasattr(*args,*kwargs):返回物件是否具有給定名稱的屬性,這是通過呼叫getattr(obj,name)和捕獲attributeerror完成的。
print(hasattr(obj,"name"))
print(hasattr(obj,"say_hi")
4.3 setattr 設定屬性
def setattr(x,y,v):將給定物件上的命名屬性設定為指定值。setattr(x,『y』,v)等效於『x.y=v』。
setattr(obj,'sb',true)
setattr(obj,'show_name',lambda self:self.name+'sb')
print(obj.__dict__) 加入 「sb」 :true
print(obj.show_name(obj)) 列印egonsb
4.4 delattr 刪除屬性
def delattr(x,y):刪除給定物件中的命名屬性。delattr(x,『y』)相當於`del x.y『
5. isinstance
isinstance(obj,cls)檢查是否obj是否是類 cls 的物件
class foo(object):
pass
obj = foo()
obj cls
isinstance(obj, foo) 判斷obj(物件)是否是這個foo類的物件 如果foo為子類,則同樣適用父類,返回也是true
5.1 issubclass
def是子類(x,a_tuple):返回『cls』是從另乙個類派生的還是同乙個類。元組,如「issubclass(x,(a,b,.)」中的元組,可以作為檢查的目標。這相當於`issubclass(x,a)或issubclass(x,b)
issubclass(sub, super)檢查sub類是否是 super 類的派生類
class a(object):
pass
class foo(a):
pass
class bar(foo):
pass
print(issubclass(bar, foo)) bar 是foo、a、object的子集,返回true
類也是物件
class foo(object):
staticfield = "old boy"
def __init__(self):
self.name = 'wupeiqi'
def func(self):
return 'func'
@staticmethod
def bar():
return 'bar'
print(getattr(foo, 'staticfield'))
print(getattr(foo, 'func'))
print(getattr(foo, 'bar'))
物件導向 高階
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...