python之模块、类、对象
模块就像字典
字典是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之模块、类、对象的更多相关文章
- 全面了解python中的类,对象,方法,属性
全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...
- python中自定义类对象json字符串化的方法
1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): print 'default(', repr(obj), ...
- 理解Python中的类对象、实例对象、属性、方法
class Animal(object): # 类对象 age = 0 # 公有类属性 __like = None # 私有类属性 def __init__(self): # 魔法方法 self.na ...
- python第二步,类对象部分
类创建: class 类名: '类说明' def __init__ (self,参数):#类似php类的构造函数,self不知道什么东东 方法体 实例创建: 变量名 = 类名() #构造函数后的参数, ...
- Python里的类和对象简介
---恢复内容开始--- Python里的类 对象=属性+方法: 对象的属性主要是指主要的特征和参量,而方法主要是指函数: 类是一个具有一定特征和方法的集合,而对象是类的一个:类和对象的关系就如同模 ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- python—类对象和实例对象的区别
最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...
- Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures
参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...
- python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...
随机推荐
- UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 2: illegal multibyte sequence
pycharm报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 2: illegal multibyte seq ...
- Java 多线程 -- lambda 表达式推导
jdk 8 开始 java 引入了lambda 表达式. lambda适用场景: 1.接口或父类 2.接口或父类只有一个方法 我们从多线程写法来推导一下: 1.外部类写法: package com.x ...
- ES6中对函数的扩展
ES6一路扩展,字符串.数组.数值.对象无一“幸免”,ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 参数的默认值 在开发中,给函数的参数指定默认值,是很普遍很常见的一个需求, ...
- 【vue】nextTick源码解析
1.整体入手 阅读代码和画画是一样的,忌讳一开始就从细节下手(比如一行一行读),我们先将细节代码折叠起来,整体观察nextTick源码的几大块. 折叠后代码如下图 整体观察代码结构 上图中,可以看到: ...
- bootstrop日历
https://blog.csdn.net/cuixiaobo521/article/details/77880633
- docker-数据管理(3)
Docker 容器中管理数据主要有两种方式: 数据卷(Data volumes) 数据卷容器(Data volumes containers 数据卷是一个可供一个或者多个容器使用的特殊目录,它绕过UF ...
- ARP/RARP报文格式
arp协议 地址解析协议ARP(Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议. arp格式: 一个字节等于8位 硬件类型:指明发送方想知道的硬件接口类 ...
- ElasticSearch 镜像 & 安装 & 简易集群
目录 ES镜像 JDK镜像 安装 1. 安装JDK 2. 解压安装ES 3. 配置 4. 新建用户 5. 启动 踩坑 1. root启用报错 2. max file descriptors [4096 ...
- 【JAVA基础】03 Java语言基础
前言:流程控制语句 什么是流程控制语句 流程控制语句:可以控制程序的执行流程. 流程控制语句的分类 顺序结构 选择结构 循环结构 执行流程: 从上往下,依次执行. 案例演示 输出几句话看效果即可 cl ...
- 集合框架-day10
day10-集合框架-对象数组的概述与引用 1 集合框架的简单介绍: A:集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任 ...