#类的成员
class Foo:
#方法
def init(self,name):
self.__name = name #私有 obj.name无法访问
self.name = name #实例变量/字段
# 变量:
# 实例变量(字段) 访问时适用对象访问,即obj1.name
# 类变量(静态字段) 访问时使用类方法,即:Foo.country
#当所有对象中又共同的字段时且要改都改时,可将实例变量(字段)提取到类变量(静态字段)
#方法:
实例方法
静态方法
类方法
class Foo:
def __init__(self,name):
self.name = name
def func(self): #实例方法
print(self.name)
@staticmethod #静态方法 直接用类调用
def display(): #如果方法中无需使用对象中封装的值
print('333')
@classmethod #类方法
def show(cls,x1):
print('666')
# 属性: 方法参数只有一个self
# 调用时:无需加括号,对象.方法
# 无需传参且有返回值时使用
class Foo:
def __init__(self):
pass
@property #属性
def start(self):
return 1
property
def end(self):
return 10
obj = Foo()
obj.start
obj.end
data_list = []
for i in range(1,901):
data_list.append(‘alex-%s’%i)
while True:
page = int(input(‘请输入要查看的页码:’))
per_page_num = 10
start = (page - 1) *per_page_num
end = page * per_page_num
page_data_list = data_list[start:end]
for item in page_data_list:
print(item)
class page_func:
def init(self,page,per_page_num=10):
self.page = page
self.page_num = per_page_num
def start(self):
return (page-1)*self.page_num
def end(self):
return page * self.page_num
page_list = []
for i in range(1,901):
page_list.append(‘alex-%s’%i)
while True:
page = int(input(‘请输入要查看的页码:’))
obj = page_func(page)
page_data_list = page_list[obj.start():obj.end()]
for item in page_data_list:
print(item)
super()#按照继承顺序找下一个
#特殊成员
#1.类名() 自动执行__init__
#2.对象()自动执行__call__
#3.对象[] 自动执行__getitem__
#4.对象[‘xx’] 自动执行__setitem__
#5.del 对象[xx] 自动执行__delitem__
#6.对象+对象 自动执行 add
#7.with 对象
#8.
class Foo:
def init(self,a1,a2):
self.a1 = a1
self.a2 = a2
def call(self, *args, **kwargs):
print(111,args,kwargs)
def getitem(self, item):
print(item)
def setitem(self, key, value):
print(key,value,1111)
def delitem(self, key):
print(key)
def add(self, other):
return
def enter(self):
print(111)
return 6
def exit(self, exc_type, exc_val, exc_tb):
print(222)
def new(cls, *args, **kwargs):
return object.new(cls) #python内部创建一个当前类的对象(初建时内部是空的)
with obj as f:
print(f)
print(“内部代码”)