• 面向对象


    -----------------------态度决定深度,格局决定宽度,思想决定高度.

    # ---------------------------------------------------------------------------------#
    # class rainbow:
    # pass
    #
    # r = rainbow()
    #
    # r.fi_color = "red"
    # r.se_color ="yellow"
    # r.th_color = "blue"
    # r.fo_color = "purple"
    # r.fv_color = "green"
    # r.sx_color = "orange"
    #
    # t = rainbow()
    #
    # t.fi_color = "red"
    # t.se_color ="yellow"
    # t.th_color = "blue"
    # t.fo_color = "purple"
    # t.fv_color = "green"
    # t.sx_color = "orange"
    #
    # print(r.fi_color)
    # print(r.se_color)
    # print(r.th_color)
    # print(r.fo_color)
    # print(r.fv_color)
    # print(r.sx_color)


    # class Superstar():
    # def __init__(self,id,high,movie,age):
    # self.id = id
    # self.high = high
    # self.movie = movie
    # self.age = age
    #
    #
    # def Singsong(self,damajiang,lvyou):
    #
    # print("我要%s" % damajiang,lvyou)
    #
    # huazai = Superstar('no.89757',178,'神都龙王',50)
    # print(huazai.age,huazai.id,huazai.high,huazai.movie)
    #
    # zhazh = Superstar('no.77977',160,'赌神',47)
    # print(zhazh.age,zhazh.id,zhazh.high,zhazh.movie)
    #
    #
    # huazai.Singsong("打麻将","旅游")


    # __init__: 构造方法
    #
    # self: 自己调用自己


    # class DongHuaPian():
    #
    # def __init__(self, name, zhujiao, borg, xifen):
    # self.name = name
    # self.zhujiao = zhujiao
    # self.borg = borg
    # self.xifen = xifen
    #
    # def haopenyou(self):
    # print("%s" % self.zhujiao)
    #
    # def wholove(self):
    # print("%s" % self.borg)
    #
    # def feel(self):
    # print("%s" % self.xifen)
    #
    # huluwa = DongHuaPian("dawa","xiaojingang","boy","byihao")
    # print()
    #
    # huluwa.haopenyou()
    # huluwa.wholove()
    # huluwa.feel()

    # ---------------------------------------------------------------------------------#

    # class usr():

    # def __init__(self, username, password):
    # self.username = username
    # self.password = password

    # def login(self, u_name, p_word):
    # if u_name == self.username and p_word == self.password:
    # return True
    # else:
    # return False


    # ul = usr("ajax", "123")

    # dada = ul.login(input("账号--> "), input("密码-->"))
    # print(dada)

    # ---------------------------------------------------------------------------------#
    # 面向对象作业(01)
    #
    # 1.简述编写类和执行类中方法的流程。
    # 编写类: 首先定义一个类class--> 构造方法-->创建类对象-->调用类对象-->执行类对象

    # 执行类: 获取到类对象--> 调用方法--> 执行方法

    # ---------------------------------------------------------------------------------#
    # 2.简述面向对象三大特性?

    # 封装:对属性封装,和对方法的封装
    # 继承:在子类中及执行本类又执行父类的方法
    # 多态:(鸭子类型) ,可以使用相同的函数名,调用的逻辑也一样,但执行的结果却不一样,具有不同的函数的功能.
    # ---------------------------------------------------------------------------------#
    # 3.将以下函数改成类的方式并调用:
    # def func(a1):
    # print(a1)
    #
    # class func:
    # print("a1")
    #
    #
    # r = func()
    # print(r)


    # ---------------------------------------------------------------------------------#
    # 4.方法和函数的区别

    # / * < -- 类对象调用func是方法,类调用func是函数--> * /

    # /*<-- 最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参-->*/

    # ---------------------------------------------------------------------------------#
    # 5.什么是构造方法? 构造方法会在什么时候被调用

    # 在类下面定义的函数就是构造方法
    # 调用类对象的时候,然后执行类对象下面的函数时就会被调用

    # ---------------------------------------------------------------------------------#
    # 6.面向对象中的self指的是什么?
    # 是 自己调用自己 就是self

    # ---------------------------------------------------------------------------------#
    '''
    class Person:
    def __init__(self, name, age, gender):
    self.name = name
    self.age = age
    self.gender = gender
    obj = Person("王德福",18,"男")
    '''
    # 7.以上代码体现面向对象的什么特点?

    # /*<-- 封装-->*/

    # ---------------------------------------------------------------------------------#
    '''
    class Message:
    def email(self):pass
    def msg(self):pass
    def wechat(self):pass
    '''
    # 8.以上代码体现面向对象的什么特点?.

    # /*<-- 封装-->*/

    # ---------------------------------------------------------------------------------#
    # '''
    # class Foo:
    # def func(self):
    # print('foo.func')
    # obj = Foo
    # res = obj.func()
    # print(res)
    # '''
    # 9.看上面代码写结果:


    # /*<-- TypeError ->*/func() missing 1 required positional argument: 'self'

    # ---------------------------------------------------------------------------------#
    # 10.定义一个类,其中有计算周长和面积的方法(圆的半径通过参数传递到构造方法)。
    # class ciecle():
    # def __init__(self,r):
    # self.r = r
    #
    # def calculate_perimeter(self,r):
    # print(2*3.14*r)
    #
    # def calculate_area(self,r):
    # print(3.14 * r**2)
    #
    # cc = ciecle("5")
    # cc.calculate_area()
    # cc.calculate_perimeter()

    # ---------------------------------------------------------------------------------#
    # 11.面向对象中为什么要有继承?.

    # 方便子类 调用父类的共有的信息
    # 简化重复繁琐的信息

    # ---------------------------------------------------------------------------------#
    # 12.Python多继承时,查找方法的顺序遵循什么规则?

    # 优先使用自己的,然后使用临近的,最后使用最远的

    # ---------------------------------------------------------------------------------#
    '''
    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()

    '''

    # 13.看上面代码写结果:

    # foo.f0
    # --------------*******--------------
    # base1.f3
    # base1.f1

    # ---------------------------------------------------------------------------------#
    '''
    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()

    obj2 = Base()
    obj2.f2()

    '''

    # 14.看上面代码写结果:

    # base.f1 #【 ㄨ 】
    # base.f3 #【 ㄨ 】

    # Error

    # ---------------------------------------------------------------------------------#
    # 15.补充代码实现:
    #
    # 1.while循环提示用户输入:用户名、密码、邮箱
    # count = 3
    #
    # while 1:
    # print("---输入数据,Q退出---")
    # usr_name = input("账户-->")
    # ps_word = input("密码-->")
    # e_mail = input("邮箱-->")
    # count -= 1
    # if count == 0:
    # break
    #
    # # 2.为每个用户创建一个对象,并添加到列表中。#
    # nist = ['usr1','usr2','usr3']
    #
    # class usr1:
    # def __init__(self,usr_name,ps_word,e_mail):
    # pass
    #
    #
    # class usr2:
    # def __init__(self, usr_name, ps_word, e_mail):
    # pass
    #
    #
    # class usr3:
    # def __init__(self, usr_name, ps_word, e_mail):
    # pass

    # 3.当列表中的添加了3个对象后,跳出循环并以此循环打印所有用户的姓名和邮箱。如:

    # 我叫ajax,邮箱是xxx@live.com
    # 我叫oldboy,邮箱是old@live.com


    # ---------------------------------------------------------------------------------#.


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


    class Account:
    def __init__(self):
    self.user_list = [] # 用户列表,数据格式:[User对象,User对象,User对象]

    def login(self):
    ###用户登录,用户输入用户名和密码并去self,user1ist中检查用户是否合法
    # return##
    pass

    def register(self):
    ### 用户注册,动态创建User对象,并添加到self, user list中
    # return###
    pass

    def run(self):
    ### Q主程序,先进行2次用户注册,再进行用户登录(3次重试机
    # return:####
    pass


    if __name__ == "__main__":
    obj = Account()
    obj.run()

    # 16.补充上述代码:实现用户注册和登录(升级题)
    #
    #
    #
    #
    # 明日默写:
    # 1.你理解的面向对象.类. 对象分别是什么含义
    # 2.如何创建类
    # 3.__init__是什么? 什么地方会调用__init__
    # 4.写一写你对面向对象三大特征的理解
  • 相关阅读:
    Linux PXE无人值守网络装机
    Linux 自动化部署DNS服务器
    Linux DNS服务配置
    Mysql数据库基础学习笔记
    Linux AIDE(文件完整性检测)
    mysql:[Err] 1068
    sql的date、时间函数、时间戳
    hive之建立分区表和分区
    excel转sql代码
    spark-submit之使用pyspark
  • 原文地址:https://www.cnblogs.com/dealdwong2018/p/9919550.html
Copyright © 2020-2023  润新知