模块就像字典

字典是python中唯一映射关系,它用一个事物对应另外一个事物,也就是所谓的key->value。

模块包含一些变量和函数,可以导入,并且可以用点(·)来操作访问变量和函数。

记住‘从X获取Y的概念’。

他们相似,只是语法不同。

1.也就是说在python中有一条通用的模式:

(1)有一个key =value的容器

(2)通过key从容器中获取数据

不同点:

在字典中key是字符串,写法为[key];在模块中写法为.key,其余的地方一模一样。

类就像模块

可以认为模块就是python的特殊字典,然后可以用点(·)操作符来访问它。

类(class)是组织一系列的函数和数据并将它们放在一个容器里面,同样可以用点(·)操作符来访问它们。

使用类可以创造出很多个类似基类的类别,而模块一但导入了整个项目有且只有一个模块

对象就像导入

如果类像模块,那么应该也有一个类似import的概念。在类中这个概念被称为实例化,当一个类被实例化,就得到了一个类的对象了。

创建一个类;

class Mystuff(object):

  def __init__(self ):

    self.a = 'How are you?'

  def apple(self):

    print("I am classy apple ")

b = Mystuff()#类的实例化

b.apple()#调用类的方法

print b.a#打印类的属性

分析下类的实例化这一句话其实python内部给我们做了很多事情:

python查找Mystuff()类确认是被定义过

  --->python创造一个新对象,其中包含Mystuff()中定义的所有函数

    --->python查找Mystuff()类中是否定义__init__()函数,如果有就初始化这个空对象

      --->Mystuff()类中的__init__()方法一个self参数,它就是我们创建的空对象,可以在上面设置变量

        --->给self.a(空对象)的变量设置参数,初始化这个对象

          --->截止目前python可以使用这个空对象了,然后把他赋值给变量b

注:类---------->对象

这个过程(也可以称为类的实例化)是通过类来创建对象,这个对象就是类的一个实例,也叫实例对象。

python类中属性的引用

python中属性的引用是由外而内的,当你创建一个类的实例时,准备开始引用属性,这个时候编译器会搜索实例是否拥有属性,如果有就引用,如果没有就会搜索这个实例所属类是否有属性,有就引用,没有就报错。

python之模块、类、对象的更多相关文章

  1. 全面了解python中的类,对象,方法,属性

    全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  2. python中自定义类对象json字符串化的方法

    1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): print 'default(', repr(obj), ...

  3. 理解Python中的类对象、实例对象、属性、方法

    class Animal(object): # 类对象 age = 0 # 公有类属性 __like = None # 私有类属性 def __init__(self): # 魔法方法 self.na ...

  4. python第二步,类对象部分

    类创建: class 类名: '类说明' def __init__ (self,参数):#类似php类的构造函数,self不知道什么东东 方法体 实例创建: 变量名 = 类名() #构造函数后的参数, ...

  5. Python里的类和对象简介

    ---恢复内容开始--- Python里的类  对象=属性+方法: 对象的属性主要是指主要的特征和参量,而方法主要是指函数: 类是一个具有一定特征和方法的集合,而对象是类的一个:类和对象的关系就如同模 ...

  6. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  7. python—类对象和实例对象的区别

    最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...

  8. Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures

    参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...

  9. python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...

随机推荐

  1. JasperReports入门教程(二):中文打印

    JasperReports入门教程(二):中文打印 背景 在上一篇中我们介绍了JasperReport的基本入门,也展示了一个报表.但是我们的示例都是使用的英文,如果我们把需要打印的数据改为中文会怎么 ...

  2. 可以用 Python 编程语言做哪些神奇好玩的事情?除了生孩子不能,其他全都行!

    坦克大战 源自于一个用Python写各种小游戏的github合集,star数1k.除了坦克大战外,还包含滑雪者.皮卡丘GOGO.贪吃蛇.推箱子.拼图等游戏. 图片转铅笔画 帮助你快速生成属于自己的铅笔 ...

  3. MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】

    MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...

  4. UML由浅入深

    在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML Distilled: A Brief Guide to the Standard O ...

  5. vue 开发规范

    本文档为前端 vue 开发规范 规范目的 命名规范 结构化规范 注释规范 编码规范 CSS 规范 规范目的 为提高团队协作效率 便于后台人员添加功能及前端后期优化维护 输出高质量的文档 命名规范 为了 ...

  6. npm小工具、技巧合集:让你的npm“健步如飞”

    1.解决安装速度慢问题-nrm 解决痛点 由于npm的包仓库是在国外,npm包安装速度较慢,部分包甚至无法安装. 对比cnpm的优势 1.cnpm增加了大脑的记忆和思维负担,常常需要考虑使用npm还是 ...

  7. 删除集群mds

    2019独角兽企业重金招聘Python工程师标准>>> 删除cephfs文件系统步骤: 1.停掉服务端mds: #systemctl stop {mds_service} 2.将md ...

  8. RedHat Enterprise Linux 5.8 升级openssl

    RedHat Enterprise Linux 5.8升级openssl,遇到以下问题,做下标记: 由于之前安装RedHat Enterprise Linux 5.8 时候只安装了服务器环境,没有安装 ...

  9. Linked List-3

    第一篇终结Linked List(一).终结Linked List(二)主要讲了单链表的基础知识,接下来的第二篇主要讲一些比较经典的问题. 一.Count() 给一个单链表和一个整数,返回这个整数在链 ...

  10. 信息竞赛进阶指南--区间最值问题的ST算法

    void ST_prework() { for (int i = 1; i <= n; i++) f[i][0] = a[i]; int t = log(n) / log(2) + 1; for ...