码迷,mamicode.com
首页 > 编程语言 > 详细

Python----面向对象---绑定方法与非绑定方法的应用

时间:2018-03-22 13:39:29      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:port   span   imp   一个   eth   调用   hex   style   ssm   

1、绑定到对象的方法的应用

 1 class People:
 2     def __init__(self, name, age, sex):
 3         self.name = name
 4         self.age = age
 5         self.sex = sex
 6 
 7     def tell_info(self):  # 绑定到对象的方法
 8         print(Name:%s Age:%s Sex:%s % (self.name, self.age, self.sex))
 9 
10 p = People(egon, 18, male)
11 p.tell_info()  # tell_info(p)
12 
13 结果为:
14 
15 Name:egon Age:18 Sex:male

绑定给对象,就应该由对象来调用,自动将对象本身当做第一个参数传入

2、绑定给类,就应该由类来调用,自动将类本身当做第一个参数传入

 1 import setting
 2 
 3 class People:
 4     def __init__(self, name, age, sex):
 5         self.name = name
 6         self.age = age
 7         self.sex = sex
 8 
 9     def tell_info(self):  # 绑定到对象的方法
10         print(Name:%s Age:%s Sex:%s % (self.name, self.age, self.sex))
11 
12     @classmethod
13     def from_conf(cls):
14         obj = cls(
15             setting.name,
16             setting.age,
17             setting.sex
18         )
19         return obj
20 
21 # p = People(‘egon‘, 18, ‘male‘)
22 # p.tell_info()  # tell_info(p)
23 p = People.from_conf()
24 p.tell_info()
25 
26 结果为:
27 
28 Name:xudachen Age:18 Sex:male

3、非绑定方法

 1 import setting
 2 import hashlib
 3 import time
 4 
 5 class People:
 6     def __init__(self, name, age, sex):
 7         self.id = self.create_id()
 8         self.name = name
 9         self.age = age
10         self.sex = sex
11 
12     def tell_info(self):  # 绑定到对象的方法
13         print(Name:%s Age:%s Sex:%s % (self.name, self.age, self.sex))
14 
15     @classmethod
16     def from_conf(cls):
17         obj = cls(
18             setting.name,
19             setting.age,
20             setting.sex
21         )
22         return obj
23 
24     @staticmethod
25     def create_id():
26         m = hashlib.md5(str(time.time()).encode(utf-8))
27         return m.hexdigest()
28 
29 # p = People(‘egon‘, 18, ‘male‘)
30 # p.tell_info()  # tell_info(p)
31 # p = People.from_conf()
32 # p.tell_info()
33 
34 p1 = People(xudachen1, 18, male)
35 p2 = People(xudachen2, 28, male)
36 p3 = People(xudachen3, 38, male)
37 
38 print(p1.id)
39 print(p2.id)
40 print(p3.id)
41 
42 结果为:
43 
44 1dadcd98fe26e278ce864c2f0cf2e753
45 bc09cd38527ef257fa3158d4e342ea1b
46 bc09cd38527ef257fa3158d4e342ea1b

非绑定方法,不与类或者对象绑定,谁都可以调用,没有自动传值一说

 

Python----面向对象---绑定方法与非绑定方法的应用

标签:port   span   imp   一个   eth   调用   hex   style   ssm   

原文地址:https://www.cnblogs.com/xudachen/p/8622888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!