一、繫結方法:繫結給誰,就應該由誰來呼叫,誰來呼叫就會把呼叫者當作第乙個引數自動傳入。
繫結到物件的方法:在類內定義的沒有被任何裝飾器修飾的。
繫結到類的方法:在類內定義的被裝飾器classmethod修飾的方法。
二、非繫結方法:沒有自動傳值這麼一說了,就類中定義的乙個普通工具,物件和類都可以使用。
非繫結方法:不與類或者物件繫結。
物件方法:不需要裝飾器;需要繫結方法。
類方法:需要裝飾器classmethod,需要繫結方法。
靜態方法:需要裝飾器staticmethod,不需要繫結方法。
示例:
class foo:
def __init__(self, name):
self.name = name
def tell(self):
print('名字是%s' % self.name)
@classmethod
def func(cls): # cls=foo
print(cls)
@staticmethod
def func1(x, y):
print(x + y)
f = foo('winnie')
print(f.tell) # >
f.tell()
print(foo.func) # >
foo.func()
print(foo.func1) # print(f.func1) # foo.func1(1, 2)
f.func1(1, 3)
結果:>
名字是winnie
>
34
應用:
class people:
def __init__(self, name, age, ***):
self.name = name
self.age = age
self.*** = ***
def tell_info(self):
print('name:%s age:%s ***:%s' % (self.name, self.age, self.***))
p = people('winnie', 18, 'female')
p.tell_info()
另一種方式建立例項
import settings
class people:
def __init__(self, name, age, ***):
self.name = name
self.age = age
self.*** = ***
def tell_info(self):
print('name:%s age:%s ***:%s' % (self.name, self.age, self.***))
@classmethod
def from_conf(cls):
obj = cls(
settings.name,
settings.age,
settings.***
)return obj
p = people.from_conf()
p.tell_info()
settings.py檔案
name='winnie'
age=18
***='female'
import hashlib
import time
import settings
class people:
def __init__(self, name, age, ***):
self.id = self.create_id()
self.name = name
self.age = age
self.*** = ***
def tell_info(self):
print('name:%s age:%s ***:%s' % (self.name, self.age, self.***))
@classmethod
def from_conf(cls):
obj = cls(
settings.name,
settings.age,
settings.***
)return obj
@staticmethod
def create_id():
m = hashlib.md5(str(time.time()).encode('utf-8'))
return m.hexdigest()
p1 = people('winnie', 18, 'male')
p2 = people('allen', 28, 'male')
p3 = people('vivian', 38, 'male')
print(p1.id)
print(p2.id)
print(p3.id)
結果:2743f0286bb2711c930bbf6bb353a51f
81f132a5334db7b561fd3ea81c290e11
81f132a5334db7b561fd3ea81c290e11
Python教程 繫結方法與非繫結方法
一 繫結方法 1.物件的繫結方法 首先我們明確乙個知識點,凡是類中的方法或函式,預設情況下都是繫結給物件使用的。下面,我們通過例項,來慢慢解析繫結方法的應用。class people def init self,name,age self.name name self.age age deftalk...
繫結方法與非繫結方法
特性 繫結給誰就應該由誰來呼叫,誰來呼叫就會將誰當作第乙個引數自動傳入 精髓在於自動傳值 繫結方法分為兩類 1.1 繫結給物件方法 在類內部定義的函式 沒有被任何裝飾器修飾的 預設就是繫結給物件用的 1.2 繫結給類的方法 在類內部定義的函式如果被裝飾器 classmethod裝飾,那麼則是繫結給類...
python類的繫結方法與非繫結方法
一 繫結方法 首先我們明確乙個知識點,凡是類中的方法或函式,預設情況下都是繫結給物件使用的。下面,我們通過例項,來慢慢解析繫結方法的應用。class people def init self,name,age self.name name self.age age deftalk self pass...