在類中定義函數如果 不加裝飾器 則默認 為對象作為綁定方法
如果增加 classmethod 是 以 類 作為綁定方法
增加 classmethod 是 非綁定方法,就是不將函數 綁定
#####################
class Foo:
def func(self):
print(self)
@classmethod
def func2(cls):
print(cls)
@staticmethod
def sta():
print('非綁定參數')
JG=Foo()
JG.func()
JG.func2()
JG.sta()
########################
綁定方法與 非綁定方法的
應用場景;Mysql 連接;?
綁定對象方法:默認傳值
綁定類方法: 可以從文件中讀取 默認值
非綁定方法,通過time.clock() 生成ID
#############################
?
import set1
import hashlib
import time
class Mysql:
def __init__(self,host,port):
self.id=self.create_id()
self.host=host
self.port=port
@classmethod
def from_conf(cls):
return cls(set1.Host,set1.Port)
@staticmethod
def create_id():
HAS=hashlib.md5(str(time.clock()).encode('utf-8'))
return HAS.hexdigest()
@classmethod
def dele(cls):
print('from,delet')
def select(self):
print('select')
JG=Mysql('192.168.1.1','3306')
JG.select()
print(JG.create_id())
#############################################
?