python——面向对象(二)
""""" 类成员: 一.字段 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])