类的__(成员,属性,方法,变量)相关练习
1)
2)请编在写一个私有的静态方法,并通过代码证明私有方法不能再外部方法但可以在内部访问。
class Foo: @staticmethod #静态方法 def __chi(): print("吃啥呢.") def __init__(self): Foo.__chi() #一旦实例化,那么实例化对象内就会自动生成一个__chi()的值 obj = Foo() #打印结果:吃啥呢. osj.__chi() #此处会报错,因为__chi 是私有的静态方法.不能在类外面调用.
3) day16 作业的最后一题
class User: def __init__(self,username,password): self.username = username self.password = password class Account: def __init__(self): self.user_list = [] pass def login(self): for i in range(3): uname = input("登陆用户名>>>") upwd = input("登陆密码>>>") f = open("infp",mode = "r",encoding="utf-8") for line in f: lst = line.strip().split("$") u = User(lst[0],lst[1]) if uname == u.username and upwd == u.password: print("登陆成功") return else: print("登陆失败") def regist(self): uname = input("注册用户名>>>") upwd = input("注册密码>>>") u = User(uname,upwd) #创建用户 f = open("info",mode="a",encoding="utf-8") f.write(u.username+"$"+u.password+"\n") f.flush() f.close() def run(self): self.regist() #题目要求调用两次注册 self.regist()#自己类中的方法互相调用,用self self.login() obj = Account() obj.run()
===================================================
第四题:
class Page: def __init__(self, lst, pagesize): self.lst = lst self.pagesize = pagesize def start(self): #首页 return self.lst[0:self.pagesize] @property def zongye(self): #总页数 if len(self.lst) % self.pagesize==0: return len(self.lst)//self.pagesize else: return len(self.lst)//self.pagesize + 1 def index(self):# 指定某页显示的数据 ye = int(input("输入显示的页数:")) if ye<1 or ye> self.zongye: print("对不起,输入有误.") else: return self.lst[(ye - 1)*self.pagesize : ye*self.pagesize] def end(self): return self.lst[(self.zongye-1)*self.pagesize:(self.zongye)*self.pagesize] la = [88,99,44,66,11,22,33,77,111,333,999,555,88888,81] a = Page(la,3) print(a.start()) print(a.end()) print(a.index()) 输出结果为: [88, 99, 44] [88888, 81] 输入显示的页数:4 [333, 999, 555]