zoukankan      html  css  js  c++  java
  • Python--面向对象编程

    一、面向对象的理解

    面向对象的核心就是对象二字,什么是对象呢,对象就是特征与技能的结合体,例如,花、草、树木是对象、电脑和人也是对象,他们都有自己的特征和技能

    二、面向对象的优点:

    面向对象的优点正是面向过程的缺点,面向过程可扩展性差,但是面向对象可扩展性强

    三、面向对象的缺点

    面向对象的缺点正是面向过程的优点,面向过程能够把复杂的问题流程化、简单化,面向对象代码开发复杂度高

    四、面向对象的应用场景

    用户需求经常变化,例如互联网应用,游戏和企业内部应用等

    五、类的概念

    类就是一系列对象相似的特征和技能的结合体

    强调,站在不同的角度,得到的分类是不一样的

    在现实世界中:一定现有对象,后有类

    在程序中:一定得先定义类,然后调用类产生对象

    站在路飞学员的角度,大家都是学生

    在现实世界中:

    对象1:王一丫

      特征:

      学校=‘luffycity’

      名字=‘王一丫’

      性别=‘女’

      年龄=18

     技能:

      学习

      吃饭

      睡觉

    对象2:王二丫

      特征:

      学校=‘luffycity’

      名字=‘王二丫’

      性别=‘男’

      年龄=28

     技能:

      学习

      吃饭

      睡觉

    对象3:王三丫

      特征:

      学校=‘luffycity’

      名字=‘王三丫’

      性别=‘男’

      年龄=38

     技能:

      学习

      吃饭

      睡觉

    总结现实中路飞学院的学生类,

      相似的特征:

        学校=‘luffycity’

      相似的技能:

         学习

         吃饭

         睡觉

    六、在程序中:

    1、先定义类:

    2、后产生对象

    代码如下:

     1 class LuffyStudent():
     2     school = 'luffycity'
     3 
     4     def learn(self):
     5         print('is learning')
     6 
     7     def eat(self):
     8         print('is eating')
     9 
    10     def sleep(self):
    11         print('is sleeping')
    12    
    13 
    14 stu1 = LuffyStudent()
    15 stu2 = LuffyStudent()
    16 stu3 = LuffyStudent()
    17 print(stu1)
    18 print(stu2)
    19 print(stu3)

    结果如下:

    <__main__.LuffyStudent object at 0x0000023169F2C5C0>
    <__main__.LuffyStudent object at 0x0000023169F0E2E8>
    <__main__.LuffyStudent object at 0x000002316A0CE0F0>

    七、如何使用类

    1、与函数不同,类定义好之后就会执行,示例代码如下

     1 class LuffyStudent():
     2     school = 'luffycity'  # 数据属性
     3 
     4     def learn(self):  #函数属性
     5         print('is learning')
     6 
     7     def eat(self):  #函数属性
     8         print('is eating')
     9 
    10     def sleep(self):  #函数属性
    11         print('is sleeping')
    12 
    13     print('====run=====')

    结果如下:

    ====run=====

    2、查看类的名称空间

    代码如下:

    1 print(LuffyStudent.__dict__)
    2 print(LuffyStudent.__dict__['school'])
    3 print(LuffyStudent.__dict__['learn'])

    结果如下:

    1 {'__module__': '__main__', 'school': 'luffycity', 'learn': <function LuffyStudent.learn at 0x000001420C1AC620>, 'eat': <function LuffyStudent.eat at 0x000001420C1AC6A8>, 'sleep': <function LuffyStudent.sleep at 0x000001420C1AC730>, '__dict__': <attribute '__dict__' of 'LuffyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'LuffyStudent' objects>, '__doc__': None}
    2 luffycity
    3 <function LuffyStudent.learn at 0x000001420C1AC620>

    类有自己的查看类名称空间的方法

    如下:

    1 print(LuffyStudent.school)
    2 print(LuffyStudent.learn)

    结果如下:

    luffycity
    <function LuffyStudent.learn at 0x0000027CB1A4C620>

    3、增加类的名称空间

    1 LuffyStudent.country = 'China'
    2 print(LuffyStudent.country)

    结果如下:

    China

    3、删除类的名称空间

    del LuffyStudent.country

    4、更改类的名称空间

    LuffyStudent.school = 'Luffycity'

  • 相关阅读:
    内存管理 Autorelease、retain、copy、assign的set方法和含义?
    解决 项目cocoapods diff: /../Podfile.lock: No such file or directory
    iOS按钮点击的频率 防止按钮连续点击时重复执行按钮的点击方法
    iOS 网络篇--PDF网络文件下载和打开
    使用runtime获取属性
    取到 tableview 自定义section header 上的button
    JavaScript第一天 改变DIV的样式
    iOS 因为reason: 'Pushing the same view controller instance more than once is not supported而奔溃(下)
    iOS 因为reason: 'Pushing the same view controller instance more than once is not supported而奔溃(上)
    iOS缓存功能
  • 原文地址:https://www.cnblogs.com/xudachen/p/8567136.html
Copyright © 2011-2022 走看看