"""""
类成员:
一.字段
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])