面向对象之类的成员

成员
class Person:
def __init__(self, name, num, gender, birthday):
# 成员变量(实例变量)
self.name = name
self.num = num
self.gender = gender
self.birthday = birthday

# 对象来访问(成员方法)(实例方法)
def marray(self, duifang):
print("人会结婚%s" % duifang)

成员: 在类中定义的变量和方法都被成为成员

变量
1. 成员变量(实例变量)(字段column) (重点)
2. 类变量(静态变量) 直接写在类中的. 共享出去的.
方法
1. 成员(实例)方法 加了self的.调用的时候。必须用对象去访问. (重点)
2. 类方法, 当方法需要传递类名的时候. 需要类方法. 规范规则: 在上方加@classmethod
3. 静态方法, 当你的方法不需要传递当前类的对象的时候。 语法规则:在方法上面加@staticmethod

面试题: 说一说, 静态方法, 类方法和实例方法的区别.

属性
用方法来描述我们的属性信息.
注意:
1. @propery 改变一个方法成为属性
2. 这个方法只能有一个参数, self
3. 必须有返回值.

私有
只能在自己类中访问.

__方法
__变量
__类变量
都是私有. 比人访问不到. 包括他儿子.

 1 class Pagenation(object):
 2     """
 3     处理分页相关的代码
 4     """
 5 
 6     def __init__(self,data_list,page,per_page_num=10):
 7         """
 8         初始化
 9         :param data_list: 所有的数据
10         :param page: 当前要查看的页面
11         :param per_page_num: 每页默认要显示的数据行数
12         """
13         self.data_list = data_list
14         self.page = page
15         self.per_page_num = per_page_num
16 
17     @property
18     def start(self):
19         """
20         计算索引的起始位置
21         :return:
22         """
23         return (self.page-1) * self.per_page_num
24 
25     @property
26     def end(self):
27         """
28         计算索引的结束位置
29         :return:
30         """
31         return self.page * self.per_page_num
32 
33     def show(self):
34         result = self.data_list[self.start:self.end]
35         for row in result:
36             print(row)
37 
38 
39 data_list = []
40 
41 for i in range(1, 901):
42     data_list.append('alex-%s' % i)
43 
44 while True:
45     # 1. 要查看的页面
46     page = int(input('请输入要查看的页码:'))
47     obj = Pagenation(data_list,page)
48     obj.show()
面向对象处理网页翻页

 

posted @ 2018-09-26 20:59  落花~伤城  阅读(121)  评论(0编辑  收藏  举报