• Python面向对象(初识)


    # 面向过程 vs 函数
    # 面向过程编程
    # s1 = 'fdjskfldjsfl'
    # count = 0
    # for i in s1:
    #  count += 1
    # print(count)
    # l1 = [i for i in range(100)]
    # count = 0
    # for i in l1:
    #  count += 1
    # print(count)
    #1,重复代码多
    #2,可读性差.
    # 函数
    # def func(obj):
    #  count = 0
    #  for i in obj:
    #   count += 1
    #  print(count)
    # func('fdkslfjdkls')
    # func([i for i in range(100)])
    # 函数式编程 vs 面向对象编程
    # def login():
    #  pass
    #
    # def register():
    #  pass
    #
    # def check_account():
    #  pass
    #
    # def save():
    #  pass
    #
    # def transfer():
    #  pass
    #
    # def check_flow_account():
    #  pass
    #
    #
    #
    # def shopping():
    #  pass
    #
    # def check_paid_goods():
    #  pass
    #
    # def check_unpaid_goods():
    #  pass
    # 面向对象
    class Auth:
     def login(self):
      pass
     def register(self):
      pass
     def check_username(self):
      pass
     def check_password(self):
      pass
    class Account:
     def check_account():
      pass
     def save():
      pass
     def transfer():
      pass
     def check_flow_account():
      pass

    class Shopping:
     def shopping_car():
      pass
     def check_paid_goods():
      pass
     def check_unpaid_goods():
      pass
    # 面向对象第一个优点: 类是一组相似功能的集合,让我代码的组织结构更加清晰规范化.
    # 类,对象.
    # 什么是类, 可加油,可直行,可后退,可拐弯,在路上行驶: 汽车.
     # 类是具似相同功能和属性的一类实物.
    # 什么是对象?
    # 对象是类的具体体现,具体到一个.
    # 面向对象的第二优点: 上帝的思维,用面向对象设计程序,
    # 类是一个公共模板,对象去操作使用这个公共模板(慢慢体会).
    # 类的结构:
    # class Human:
    #  """
    #  此类是构建一个人类
    #  """
    #  # 第一部分: 静态属性,属性,变量,静态字段
    #  mind = '有思想'
    #  language = '会使用语言'
    #  shape_list = ['四肢','五官','头']
    #
    #  # 第二部分: 动态属性 方法 函数
    #  def work(self):
    #   print('人类都会工作')
    #
    #  def eat(self):
    #   print('人类都需要吃饭')
    # 如何使用?
    # 类名 类的名字
    # 一,静态属性
    # 1,查看类中的 所有 内容 类名.__dict__
    # print(Human.__dict__)
    # print(Human.__dict__['mind'])
    # Human.__dict__['language'] = None
    # print(Human.__dict__['language'])
    # 使用 __dict__只是查询类中的所有内容,不能增删改类中的内容,尽量不要查询单个属性.
    # 2,万能的点  . 类名. 的方式
    # Human.body_hair = '体毛'  # 增
    # del Human.language  # 删
    # Human.mind = '无脑的'  # 改
    # print(Human.shape_list) # 查
    # print(Human.__dict__)
    # 二, 方法.
    # 3, 代码中除去(静态方法,类方法)一般不用类名去执行类中的方法.
    # print(Human.work)
    # Human.work(123) # 一般不用类名执行类中的方法
    # 对象
    # class Human:
    #  mind = '有思想'
    #  language = '会使用语言'
    #  shape_list = ['四肢','五官','头']
    #  def __init__(self):
    #   # print(666)
    #   print('__init__中的self:',self)
    #  def work(self):
    #   print('人类都会工作')
    #
    #  def eat(self):
    #   print('人类都需要吃饭')
    # # obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
    # # print(obj)
    # # obj1 = Human()
    # # obj2 = Human()
    # # obj3 = Human()
    # # print(obj1,obj2,obj3)
    #
    # # 实例化对象 类名() 在内存中开辟一个空间.
    # obj = Human()
    # print('实例化的对象:',obj)
    # def func(self):
    #  # print(self)
    #  self()
    # def func1():
    #  print(666)
    # # print(func1)
    # func(func1)

    # class Human:
    #  mind = '有思想'
    #  language = '会使用语言'
    #  shape_list = ['四肢','五官','头']
    #  def __init__(self):
    #   # print(666)
    #   # print('__init__中的self:',self)
    #   self.n = 'alex'
    #   self.s = '男'
    #  def work(self):
    #   print('人类都会工作')
    #
    #  def eat(self):
    #   print('人类都需要吃饭')
    # obj = Human() # 实例化过程,实例化一个对象,产生一个对象.
    # # obj.name = 'alex'
    # # print(Human().__dict__)

    class Human:
     mind = '有思想'
     language = '会使用语言'
     shape_list = ['四肢','五官','头']
     def __init__(self,name,age,sex):
      # print(666)
      # print('__init__中的self:',self)
      self.n = name
      self.s = sex
      self.a = age
     def work(self):
      print('人类都会工作')
     def eat(self):
      self.weight = 200
      print('人类都需要吃饭')
    # lange = Human('兰哥',18,'女') # 实例化过程,实例化一个对象,产生一个对象.
    # print(lange.__dict__)
    '''
    实例化对象(Human())发生三步:
    1,在内存中开辟一个对象空间.
    2,自动执行__init__方法,并将对象空间传给self.
    3,执行__init__的代码,给对象空间封装属性.
    '''
    # 对象的角度操作对象,类.
    # lange = Human('兰哥', 18, '女') # 实例化过程,实例化一个对象,产生一个对象.
    # 1,对象查看对象空间的所有属性.
    # print(lange.__dict__)
    # 不建议用__dict__增删改对象的属性
    # lange.__dict__['n'] = '太白'
    # del lange.__dict__['n']
    # 2,对象操作对象空间的属性. 万能的点 .
    # lange.height = 180  # 增
    # del lange.n # 删
    # lange.s = '男'
    # print(lange.a)
    # print(lange.__dict__)
    # print(lange.__dict__)
    # 3,对象查看类中的静态属性,只能查看!!!
    # print(lange.mind)
    # lange.mind = '无脑'  # 给对象空间添加一个属性 mind = '无脑'
    # print(lange.mind)
    # print(Human.mind)
    # 4 ,对象调用类中的方法.
    cockroach = Human('小强',27,'laddyboy')
    # print(cockroach.eat())
    # print(cockroach.__dict__)
    # print(cockroach)
    # cockroach.eat()
    # print(cockroach.__dict__)
    # 只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数 self
    # self 类中的所有方法(类方法,静态方法)的第一个参数,都会默认接0受对象空间,所以为了方便,区分第一个参数约定俗成成为self.
    # 一个类可以实例化多个对象
    class Human:
     mind = '有思想'
     language = '会使用语言'
     shape_list = ['四肢','五官','头']
     def __init__(self,name,age,sex):
      # print(666)
      # print('__init__中的self:',self)
      self.n = name
      self.s = sex
      self.a = age
     def work(self):
      print('人类都会工作')
     def eat(self):
      self.weight = 200
      print('人类都需要吃饭')
    obj1 = Human('小强',27,'男')
    obj2 = Human('静哥',18,'女')
    obj3 = Human('龙哥',18,'男')
    print(obj1.__dict__)
    print(obj2.__dict__)
    print(obj3.__dict__)
  • 相关阅读:
    [Bzoj2243][SDOI2011]染色(线段树&&树剖||LCT)
    [poj3074]Sudoku(舞蹈链)
    [Bzoj1047][HAOI2007]理想的正方形(ST表)
    [Bzoj1030][JSOI2007]文本生成器(AC自动机&dp)
    [Bzoj2431][HAOI2009]逆序对数列(前缀和优化dp)
    [Bzoj1072][SCOI2007]排列perm(状压dp)
    [Bzoj1195][HNOI2006]最短母串(AC自动机)
    Ajax解决IE浏览器兼容问题
    运行eclipse弹出“Failed to load the JNI shared”解决方法
    Java表单类双击提交
  • 原文地址:https://www.cnblogs.com/YZL2333/p/10311468.html
Copyright © 2020-2023  润新知