类的__(成员,属性,方法,变量)相关练习

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]

 

posted @ 2018-12-20 20:28  Tank-Li  阅读(172)  评论(0编辑  收藏  举报