zoukankan      html  css  js  c++  java
  • 面向对象特征

    1.简述编写类和执行类中方法的流程
    class 类名:
    def method(selfself):
    pass
    A = 类名()
    A.method()
    二..简述面向对象三大特性?

    封装: 把具有相同属性和功能的内容封装在一个对象中

    继承: 子类可以自动拥有父类中除了私有属性外的其他所有内容

    多态: 同一个对象.可以拥有多种形态.python原生自带多态性



    # 3..将一下函数改成累的方式并调用:
    # 列:
    def func(a1):
    print(a1)

    class 类:
    def func(self,a1):
    print(a1)
    A = 类()
    A.func(123)

    4.方法和函数的区别?
    方法: 写在类中的,需要传递self
    函数:孤立.不需要传递self


    5.什么是构造方法?
    def __init__(self):
    方法体

    构造方法是创建对象的时候自动调用的

    6.面向对象中的self指的是什么?

    self表示当前类的对象.
    7.以下代码体现面向对象的什么特点?
    封装
    8.这个代码体现面向对象的什么特点?
    封装

    9.看代码写结果
    class foo:
    def func(self):
    print("foo.func")

    obj = foo()
    result = obj.func()
    print(result)


    结果none


    10.定义一个类,其中有计算周长和面积的方法(圆的半径通过参数传递到构造方法)
    class Circle:
    def __init__(self,r):
    self.r = r
    def zhouchang(self):
    return2*3.14*self.r
    def mianji(self):
    return 3.14*self.r*self*r
    c = Circle(5)
    print(c.zhouchang())

    11.面向对象中为什么要有继承.
    为了扩展性
    12.python多继承时,查找成员的顺序遵循什么规则?
    从左到右 MRO = c3算法


    13.看代码写结果
    class Base1:
    def f1(self):
    print('base1,1')
    def f2(self):
    print('base1,f2')
    def f3(self):
    print('base2.f3')
    self.f1()

    class Base2:
    def f1(self):
    print('base2,f1')

    class Foo(Base1, Base2):

    def f0(self):
    print("foo.f0")
    self.f3()

    f = Foo()
    f.f0()
    结果为: foo.f0
    base2.f3
    base1.1

    15. 补充代码实现:
    1. while循环输入用户名,密码,邮箱
    2. 为每个用户创建一个对象,并添加到列表中
    3.当列表中添加了3个对象后,跳出循环并以此循环打印所有用户的姓名和邮箱
    如:我叫alex,邮箱是xxx@live.com
    我叫oldboy,邮箱是old@live.com
    ...


    class User:
    def __init__(self, username, password, email):
    self.username = username
    self.password = password
    self.email = email


    user_list = []
    for i in range(3):
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    email = input("请输入邮箱:")
    u = User(user, pwd, email)
    user_list.append(u)
    else:
    for u in user_list:
    print("我叫%s, 邮箱是:%s" % (u.username, u.email))



    16.补充代码实现

    class User:
    def __init__(self, name, pwd):
    self.name = name
    self.pwd = pwd

    class Account:#账户的意思
    def __init__(self):
    self.user_list = [] # 数据源


    def login(self):#登录
    print("欢迎来到登录环节")
    username = input("请输入用户名: ")
    password = input("请输入密码:")
    for u in self.user_list:
    if u.name == username and u.pwd == password:
    print("登录成功")
    return
    else:
    print("登录失败")

    def register(self):
    print("欢迎来到注册环节")
    uname = input("请输入用户名")
    pwd = input("请输入密码")

    u = User(uname, pwd)
    self.user_list.append(u)


    def run(self):
    while 1:
    print("1. 注册")
    print("2. 登录")
    num = input("请输入你要执行的操作(Q退出):")
    if num == "1":
    self.register()# 注册的意思
    elif num == "2":
    self.login()
    elif num.upper() == "Q":
    print("退出")
    break
    else:
    print("你是不是傻")

    obj = Account()
    obj.run()
  • 相关阅读:
    spring学习总结009 --- 重复id或name的bean定义允许覆盖allowBeanDefinitionOverriding
    spring学习总结008 --- IOC流程图
    spring学习总结007 --- IOC容器级生命周期接口
    spring学习总结006 --- Bean级生命周期接口
    spring学习总结005 --- IOC容器启动源码(事件机制)
    字体图标
    pycharm永久激活
    Linux常用命令
    Android Studio 更新后导入旧项目Bug解决
    Ubuntu更新源
  • 原文地址:https://www.cnblogs.com/liurenli/p/9707870.html
Copyright © 2011-2022 走看看