绑定方法与非绑定方法的使用

'''
name = 'alex'
age = 18
sex = 'female'
'''

# -----------------------------------
import setings
import hashlib
import time

class People:
def __init__(self,name,age,sex):
self.id= self.create_id()
self.name=name
self.age=age
self.sex=sex

def tell_info(self):
print('Name:%s Age:%s Sex;%s Id:%s' % (self.name,self.age,self.age,self.id))
# 绑定给对象,就应该由对象来调用,自动将对象本身当作第一个参数传入

@classmethod
def from_conf(cls):
obj= cls(setings.name,
setings.age,
setings.sex
)
return obj
# 绑定给类,就应该有类来调用,自动将类本身当作第一个参数传入


@staticmethod
def create_id():
m = hashlib.md5(str(time.time()).encode('utf-8'))
return m.hexdigest()
# 非绑定方法,不与类或者对象绑定,谁都可以调用没有自动传值一说
p1 = People('kingforn',28,'male')
p1.tell_info()

p2 = People.from_conf() # from_conf(People)
p2.tell_info()

'''
执行结果:
Name:kingforn Age:28 Sex;28 Id:62586d7416e5fc7745fc3463474b1d71
Name:alex Age:18 Sex;18 Id:62586d7416e5fc7745fc3463474b1d71

'''
 
原文地址:https://www.cnblogs.com/kingforn/p/11344040.html