老男孩python全栈s21day19作业(面向对象)

  1. 简述编写类和执行类中方法的流程。

    class File:
        def read(self):
            pass
        def write(self):
            pass
    
  2. 简述面向对象三大特性?

    封装,继承,多态
    
  3. 将以下函数改成类的方式并调用 :

    def func(a1):   
        print(a1) 
    
    class Func:
        def func(self,a):
            print(a)
    f = Func()
    f.func('123')
    
  4. 面向对象中的self指的是什么?

    self是形式参数,self由那个类创建,找方法的时候就从他开始找。
    
  5. 以下代码体现 面向对象的什么特点?

    class Person:
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender
    
    
    obj = Person('武沛齐', 18, '男')
    
    封装
    
  6. 以下代码体现 面向对象的什么特点?

    class Message:
        def email(self):
            """
            发送邮件
            :return:
            """
            pass
    
        def msg(self):
            """
            发送短信
            :return:
            """
            pass
    
        def wechat(self):
            """
            发送微信
            :return:
            """
            pass
    
    封装
    
  7. 看代码写结果

    class Foo:
        def func(self):
            print('foo.func')
            
    obj = Foo()
    result = obj.func()
    print(result)
    
    foo.func
    None
    
  8. 定义个类,其中有计算圆周长和面积的方法(圆的半径通过参数传递到初始化方法)。

    import math
    class circular:
        def __init__(self,banjin):
            self.banjin = banjin
        def zhouchang(self):
            return self.banjin*2*math.pi
        def mianji(self):
            return self.banjin*self.banjin*math.pi
    
    a = circular(9)
    print(a.mianji(),a.zhouchang())
    
    
  9. 面向对象中为什么要有继承?

    增加代码的重用性
    
  10. Python继承时,查找成员的顺序遵循什么规则?

    先从子类中寻找,找不到则从父类中寻找
    
  11. 看代码写结果

    class Base1:
        def f1(self):
            print('base1.f1')
    
        def f2(self):
            print('base1.f2')
    
        def f3(self):
            print('base1.f3')
            self.f1()
    
    
    class Base2:
        def f1(self):
            print('base2.f1')
    
    
    class Foo(Base1, Base2):
        def f0(self):
            print('foo.f0')
            self.f3()
    
    
    obj = Foo()
    obj.f0()
    
    foo.f0
    base1.f3
    base1.f1
    
  12. 看代码写结果:

    class Base:
        def f1(self):
            print('base.f1')
    
        def f3(self):
            self.f1()
            print('base.f3')
    
    
    class Foo(Base):
        def f1(self):
            print('foo.f1')
    
        def f2(self):
            print('foo.f2')
            self.f3()
    
    
    obj = Foo()
    obj.f2()
    
    foo.f2
    foo.f1
    base.f3
    
  13. 补充代码实现

    user_list = []  
    while True: 
    	user = input(“请输入用户名:)  
    	pwd = input(“请输入密码:)  
    	email = input(“请输入邮箱:) 
        
    """
    # 需求
    1. while循环提示 户输 : 户名、密码、邮箱(正则满 邮箱格式)
    2. 为每个 户创建 个对象,并添加到 表中。
    3. 当 表中的添加 3个对象后,跳出循环并以此循环打印所有 户的姓名和邮箱
    """
    
    user_list = []
    class User:
        def __init__(self,user,pwd,email):
            self.user = user
            self.pwd = pwd
            self.email = email
    
    while True:
        user = input('请输入用户名:')
        pwd = input('请输入密码:')
        email = input('请输入邮箱:')
        userinfo = User(user,pwd,email)
        user_list.append(userinfo)
        if len(user_list)==3:
            for i in user_list:
                print('用户姓名:%s,用户邮箱:%s'%(i.user,i.email))
            break
    
  14. 补充代码:实现用户注册和登录。

    class User:
        def __init__(self, name, pwd):
            self.name = name
            self.pwd = pwd
    
    
    class Account:
        def __init__(self):
            # 用户列表,数据格式:[user对象,user对象,user对象]
            self.user_list = []
    
        def login(self):
            """
            用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
            :return:
            """
            pass
    
        def register(self):
            """
            用户注册,没注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
            :return:
            """
            pass
    
        def run(self):
            """
            主程序
            :return:
            """
            pass
    
    
    if __name__ == '__main__':
        obj = Account()
        obj.run()
    
    class User:
        def __init__(self, name, pwd):
            self.name = name
            self.pwd = pwd
    
    
    class Account:
        def __init__(self):
            # 用户列表,数据格式:[user对象,user对象,user对象]
            self.user_list = []
    
        def login(self):
            """
            用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
            :return:
            """
            name = input("请输入登录用户名:")
            pwd = input("请输入登录密码:")
            for i in self.user_list:
                if name == i.name and pwd == i.pwd:
                    print("登录成功")
                    return True
            print("登录失败")
            return False
            # pass
    
        def register(self):
            """
            用户注册,每注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
            :return:
            """
            name = input("请输入注册用户名:")
            pwd = input("请输入注册用户密码:")
            user = User(name,pwd)
            self.user_list.append(user)
    
            # pass
    
        def run(self):
            """
            主程序
            :return:
            """
            self.register()
            self.login()
    
    if __name__ == '__main__':
        obj = Account()
        obj.run()#实现用户注册和登录。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值