- """""
- 类成员:
- 一. 字段
- 1. 普通字段: 保存在对象中, 执行只能通过对象访问
- 2. 静态字段: 保存在类中, 执行可以通过类 也可以通过对象访问
- 他们的区别在于静态对中间人所共有的部分更加便利
- 如果不进行更改可以理解为一个全局变量
- 二. 方法
- 1. 普通方法: 保存在类中, 由对象来调用, 默认有 self 参数, 它指对象
- 2. 静态方法: 保存在类中, 由类直接调用
- 静态方法使用可以不用建立内存, 这样可以不用建立对象 直接进行访问
- 3. 类方法: 保存在类中, 由类直接调用, 默认有 cls 参数, 它对应当前类
- 类方法与静态方法没有太大的区别 可以将类方法看为静态方法的变种
- 应用场景:
- 如果对象中需要保存一些值, 执行某功能时, 需要使用对象中的值 -> 普通方法
- 不需要任何对象中的值, 用静态方法
- """
- # 字段案例:
- class Province:
- coutry='中国'
- #静态字段, 属于类 不属于方法 所以写静态字段直接写在类里
- def __init__(self,name):
- self.name=name
- #self.coutry='中国'
- #普通字段
- #用静态字段就不用每个省存一个中国了
- print(Province.coutry)
- # 方法案例:
- class Foo:
- def bar(self):# 普通方法
- #self 是对象
- print('bar')
- @staticmethod
- def sta():# 静态方法
- print('123')
- @staticmethod
- def sta1(a1,a2):# 静态方法带变量
- print(a1,a2)
- @classmethod
- def classmd(cls):
- #cls 是类名
- print(cls)
- print('classmethod')
- Foo.sta()
- #123
- Foo.sta1(1,3)
- #1 3
- Foo.classmd()
- #<class '__main__.Foo'>
- #classmethod
- """""
- 类的属性
- """
- # 案例
- class Foo:
- @property
- def ang(self):
- print('abc')
- return 1
- @ang.setter
- def angg(self, val):
- print(val)
- obj=Foo()
- r=obj.ang#abc#z 这样调用不用加括号
- print(r)#1
- obj.angg=123#123
- # 将其改为 123
- # 利用类的属性 进行分页
- class Pergination:
- def __init__(self,current_page):
- try:
- p=int(current_page)
- except Exception as e:
- p=1
- self.page=p
- @property
- def start(self):
- val=(self.page-1)*10
- return val
- @property
- def end(self):
- val=(self.page)*10
- return val
- li=[]
- for i in range(1000):
- li.append(i)
- while True:
- p=input('输入查看的页码:')
- obj=Pergination(p)
- print(li[obj.start:obj.end])
来源: http://www.bubuko.com/infodetail-3186434.html