一.两种编程思想

  1.面向过程编程

   核心是'过程',过程指的是解决问题的步骤,就是先干什么再干什么

   基于面向过程思想编写程序相当于写一条流水线,是一种机械式的思维方式

   优点:解决问题的思路清晰,可以把复杂的问题流程化,进而简单化

   缺点:可拓展性差

  2.面向对象编程

   核心是'对象',对象指的是特征与技能的结合体

   基于面向对象思维编写程序就好像创造一个世界,是一种上帝式的思维方式

   优点:可拓展性强

   缺点:解决问题的思路不止一条,编程复杂度高于面向过程

   重点:面向对象的核心体现是将数据和处理数据的程序封装到对象中 

  3.方法与属性

   方法和函数都是解决问题的功能

   函数:通过函数名直接调用

   方法:通过附属者.语法来调用

   变量:通过变量名访问变量值

   属性:通过附属者.语法来访问变量值

二.名称空间操作  

  1.能产生名称空间的有:文件 | 函数 | 类

  2.能产生名称空间的对象有__dict__这个值,通过该这个值访问到名字与地址的对应关系

  3.__dict__指向的就是附属对象的名称空间

import re
print(re.__dict__) re.__dict__['name'] = 're模块'
print(re.__dict__['name']) re.__dict__['action'] = lambda x: x
print(re.__dict__['action'](1000)) def fn():
pass
print(fn.__dict__) fn.name = 'fn函数'
print(fn.name) def test():
print("可以成为fn功能的函数")
fn.action = test
fn.action()

三.类与对象

  1.区别与定义

   类:具有相同特征与行为个体集合的抽象体现

   对象:有特征、行为的具体个体,就是类的具体表现

   区别:两人同时思考一个名字,想到的一定是同一物体就是对象反之一定是类

  2.语法

   1.类的声明:

    class 类名: # class定义类语法的关键字 类名用驼峰体

      pass

      def 方法名(self):

        pass

   2.对象的产生(实例化)

    对象1 = 类名()

    对象2 = 类名()

    对象3 = 类名()

   3.特点

    1.类与对象都有自己独立的名称空间,每一个实例化的对象名称空间也是各自独立1的

    2.所有类与对象都能额外添加 属性(变量)和 方法(函数)

   重点:类一旦被加载(随所属文件的加载就加载)就会进入类的内部执行类中所有代码

四.对象查找属性的顺序

  class People:
    # 类自带(不同在外界额外添加)的属性与方法
    identify = '人类'
    def sleep(self):
      print('睡觉')

  p1 = People()
  p2 = People()

  p1.identify = '新人类'
  print(p1.identify) # 访问自己的
  p1.__dict__.clear() # 删除自己的后
  print(p1.identify) # 访问类的

  print(p2.identify) # p2没有自己的,访问类的

  重点:属性的访问顺序:优先加载自身的名字,如果没有再考虑类的

  

DAY 22初识面向对象的更多相关文章

  1. Day 22 初识面向对象

    一.两种编程思想 1.面向过程编程 核心是'过程',过程指的是解决问题的步骤,就是先干什么再干什么 基于面向过程思想编写程序相当于写一条流水线,是一种机械式的思维方式 优点:解决问题的思路清晰,可以把 ...

  2. Python_初识面向对象

    楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗 ...

  3. 第五章 JavaScript对象及初识面向对象

    第五章   JavaScript对象及初识面向对象 一.对象 在JavaScript中,所有事物都是对象,如字符串.数值.数组.函数等. 在JavaScript对象分为内置对象和自定义对象,要处理一些 ...

  4. python - 初识面向对象

    1.初识面向对象       面向过程:一切以事务的发展流程为中心           优点:负责的问题流程化,编写相对简单         缺点:可扩展性差,只能解决一个问题,改造也会很困难,牵一发 ...

  5. python之路--初识面向对象

    一 . 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大 ...

  6. python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)

    一.组合 表示的一种什么有什么的关系 先来说一下,__init__的作用 class Dog: def __init__(self, name, kind, hp, ad): self.name = ...

  7. Day7 初识面向对象,面向对象之继承、多态和封装

    一.面向对象引言 一.面向对象的程序设计的由来 详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二.面向对象引子 写一个简单程序 ...

  8. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  9. python学习之老男孩python全栈第九期_day022知识点总结——初识面向对象

    一. 面向对象的引入# 人狗大战 def person(name,HP,aggr,sex): person = { 'name':name, # 昵称 'HP':HP, # 生命值 'aggr':ag ...

随机推荐

  1. C#路径中获取文件全路径、目录、扩展名、文件名称

    C#路径中获取文件全路径.目录.扩展名.文件名称常用函数 需要引用System.IO 直接可以调用Path的静态方法 class Program { static void Main(string[] ...

  2. 干货 | LIDAR、ToF相机、双目相机如何科学选择?

    点击"计算机视觉life"关注,置顶更快接收消息! 本文阅读时间约5分钟 本文翻译自卡内基梅隆大学 Chris asteroid 三维视觉技术的选择 传感器参数及定义 LIDAR ...

  3. java的智能提示无法打开

    第一步:选中“window”->“preference”   第二步:选中“java”,并展开   第三步:选中“Editor”,并展开   第四步:选中“Content Assist”,在右侧 ...

  4. JDK8 BigDecimal API-创建BigDecimal源码浅析二

    第二篇,慢慢来 根据指数调整有效小数位数 // 上一篇由字符串创建BigDecimal代码中,有部分代码没有给出,这次补上 // 这个是当解析字符数组时存在有效指数时调整有小小数位数方法 privat ...

  5. ros kinetic安装rbx1

    1.首先安装一些依赖包 sudo apt-get install ros-kinetic-turtlebot-bringup \ ros-kinetic-turtlebot-create ros-ki ...

  6. 2017-2018-2 20155228 《网络对抗技术》 实验五:MSF基础应用

    2017-2018-2 20155228 <网络对抗技术> 实验五:MSF基础应用 1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需 ...

  7. liunx驱动----按键中断

    liunx 中断 先设置异常入口 异常向量 void __init trap_init(void) 构造了异常向量 vector_irq+offset       按下按键: cpu自动进入异常模式 ...

  8. Django的安装和一些操作

    1.安装 (1) 命令行: pip install django==1.11.18 pip install django==1.11.18 -i 源 (2) pycharm setting —> ...

  9. [转载]URL 源码分析

    URI 引用包括最多三个部分:模式.模式特定部分和片段标识符.一般为: 模式:模式特定部分:片段 如果省略模式,这个URI引用则是相对的.如果省略片段标识符,这个URI引用就是一个纯URI. URI是 ...

  10. vue-cli —— 项目打包及一些注意事项

    打包方法: 1.把绝对路径改为相对路径:打开config/index.js 会看到一个build属性,这里就是我们打包的基本配置了.在这里可以修改打包的目录,打包的文件名.最重要的是一定要把绝对目录改 ...