成员
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()