博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day22作业详解
阅读量:4627 次
发布时间:2019-06-09

本文共 3285 字,大约阅读时间需要 10 分钟。

1.面向对象作业1

1259820-20190515153013988-653132558.png

1259820-20190515153023451-328265995.png

1259820-20190515153030323-778492432.png

2.作业详解

点击查看详细内容
#1.class Li(object):    def func1(self):        print('in func1')obj = Li()obj.func1()#2.用代码#封装    a.将相关功能封装到一个类中    b.将数据封装到一个对象中#a.class Login(object):    def register(self):pass    def login(self):pass#b.class Person(object):    def __init__(self,name,age,gender):        self.name = name        self.age = age        self.gender = genderobj = Person('Alex',44,'男')#继承    提高代码重用性    原则:现在自己类中找,找不到再去父类中找class Father(object):    def func1(self):        print('in func1')class Son(Father):    def func2(self):        print('in func2')obj = Son()obj.func2()#多态    多种形状或多种状态,其他语言传参时只能传指定的一种类的对象#3.class Pr(object):    def func(self,a1):        print(a1)obj = Pr()obj.func('哈哈')#4.方法和函数的区别    a.函数放在类中就是方法,参数多了一个self    b.方法调用时要通过实例化对象调用#5.什么是真正的构造方法    a.将数据封装到对象中,以供自己的方法调用    b.将数据封装到对象中,以供其他函数调用    c.先执行 __new__ 方法,构造方法return创建obj,给 __init__ 初始化class Foo(object):    def __init__(self,a1):  # 初始化方法        '''        为__new__创建的obj进行数据初始化,把数据放到创建obj中,可以被其他方法调用        :param a1:        '''        print(1)        self.a1 = a1        print(a1)    def __new__(cls, *args, **kwargs):  # 真正的构造方法        '''        创建一个空对象,必须要有return把创建obj返回给__init__        :param args:        :param kwargs:        :return:        '''        print(2)        return object.__new__(cls)      # Python内部创建一个当前类的对象(初创时内部是空的。)obj = Foo(99)#6.面向对象中的self指的是什么?    self指的是类对象对应的类#7.封装,把数据封装到初始化方法中#8.封装,把数据封装到类中#9.foo.funcNone#10.class calc_y(object):    def __init__(self,ban):        self.ban = ban    def c_zhou(self):        print('zhou*%s'%self.ban)    def c_mian(self):        print('mian*%s'%self.ban)obj = calc_y(3)obj.c_zhou()obj.c_mian()#11.增加代码重用性继承原则:先在自己类中找,找不到再去父类找#12. a.自身类 > 左边父类 > 右边父类    b.self是哪个类的对象,就从该类开始找#13.foo.f0base2.f3base1.1#14. 报错,因为调用的对象是Base类#15.class User(object):    def __init__(self,user,pwd,email):        self.user = user        self.pwd = pwd        self.email = emailclass Input(object):    def run(self):        user_list = []        n = 0        while n<3:            n += 1            user = input("请输入用户名:")            pwd = input("请输入密码:")            email = input("请输入邮箱:")            obj = User(user,pwd,email)            user_list.append(obj)        else:            for i in user_list:                print(i.user,i.pwd,i.email)obj = Input()obj.run()#16.class User:    def __init__(self,name,pwd):        self.name = name        self.pwd = pwdclass Account:    def __init__(self):        self.user_list = []     # 用户列表,数据格式:[User对象.User对象.User对象]    def login(self):        name = input("请输入登录账号:")        pwd = input("请输入登录密码:")        flag = False        for user in self.user_list:            # print(user.name,user.pwd)            if name == user.name and pwd == user.pwd:                flag = True                break        if flag:            print("登陆成功 !")        else:            print("登录失败 ~")    def register(self):        i = 1        while i<3:            i+=1            name = input("请输入注册用户名:")            pwd = input("请设置注册密码:")            reg_user = User(name,pwd)       # 动态创建User对象,添加到self.user_list中            self.user_list.append(reg_user)    def run(self):        self.register()        self.login()if __name__ == '__main__':    obj = Account()    obj.run()

转载于:https://www.cnblogs.com/byho/p/10869755.html

你可能感兴趣的文章
ACdream 1099——瑶瑶的第K大——————【快排舍半,输入外挂】
查看>>
Leetcode:Count and Say
查看>>
jQuery中getJSON跨域原理详解
查看>>
洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows
查看>>
WebKit、Gecko使用图形库
查看>>
babel
查看>>
JVM GC 垃圾回收(二)之 判断那些可回收,怎么回收
查看>>
图片模糊处理
查看>>
oracle 如何预估将要创建的索引的大小
查看>>
剑指Offer——平衡二叉树
查看>>
链式前向星(模板)
查看>>
第八周周总结
查看>>
【转】Word2007中不连续页码设置 多种页码设置
查看>>
css 3
查看>>
2017《面向对象程序设计》寒假作业一
查看>>
牛客国庆集训派对Day6 B.Board
查看>>
JS实现网址生成二维码
查看>>
Codeforces Gym100812 L. Knights without Fear and Reproach-扩展欧几里得(exgcd)
查看>>
SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并
查看>>
js控制使div自动适应居中
查看>>