python的面向对象-实例(对象)的相关知识、实例化
1、对象就是实例,什么是实例
类运行的过程就是实例化的过程,实例化产生的结果就是产生了一个实例
class的牛逼之处就是不用手动的return,他会加载完函数之后,自动return __init__这个函数里面的字典,字典当中封装了数据属性
函数属性就是属于类的
2、实例化
只要用类名加()的方式运行,(在类中这个运行叫实例化)首先会运行__init__这个函数
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):
print("我是初始化函数,我开始运行了")
self.mingzi=name
self.nainji=age
self.xignbie=gender#这样写完之后会自动return
print("我结束啦")
def suiditutan():#定义了一个函数属性
print("朝着墙上就是一口黄痰")
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self)
p1=Chinese("北爷",33,"female") C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 我是初始化函数,我开始运行了 我结束啦
实例化的过程就是运行__init__这个函数,从而生成一个字典,这个字典就是实例(对象)
字典当中封装的是数据属性
查看下p1这个实例的内容
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):
print("我是初始化函数,我开始运行了")
self.mingzi=name
self.nainji=age
self.xignbie=gender#这样写完之后会自动return
print("我结束啦")
def suiditutan():#定义了一个函数属性
print("朝着墙上就是一口黄痰")
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self)
p1=Chinese("北爷",33,"female")
print(p1.__dict__) C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 我是初始化函数,我开始运行了 我结束啦 {'nainji': 33, 'xignbie': 'female', 'mingzi': '北爷'}
注意:__init__里面不要有return 加了就会报错,class会自动帮你return
3、实例属性可以访问到类属性
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):#self就是p1本身
print("我是初始化函数,我开始运行了")
self.mingzi=name#p1.mingzi=name
self.nianji=age#p1.nainji=age
self.xingbie=gender#这样写完之后会自动return
print("我结束啦")
def suiditutan():#定义了一个函数属性
print("朝着墙上就是一口黄痰")
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self)
p1=Chinese("北爷",33,"female")
print(p1.__dict__)#字典里面只有数据属性
print(p1.__dict__["nianji"])#用字典的方式取字典里面的value
print(p1.__dict__["mingzi"])
print(p1.nianji)#实例调用nianji
print(p1.mingzi)#这是实例的数据属性
# print(p1.mingzi222)#会报错,实例调用方法的时候会从__dict__里面找,找不到就报错了
print(p1.dang)#用实例去调用类的数据属性,虽然__dict__里面没有,但是上一级有 C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 我是初始化函数,我开始运行了 我结束啦 {'nianji': 33, 'xingbie': 'female', 'mingzi': '北爷'} 33 北爷 33 北爷 当
实例在调用属性的时候,先找实例的属性字典里面,如果没有的话,就去类的属性字典里面找,类里面在没有的话就报错了
4、类调用方法直接用类名加()
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):#self就是p1本身
print("我是初始化函数,我开始运行了")
self.mingzi=name#p1.mingzi=name
self.nianji=age#p1.nainji=age
self.xingbie=gender#这样写完之后会自动return
print("我结束啦")
def suiditutan():#定义了一个函数属性
print("朝着墙上就是一口黄痰")
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self.mingzi)
p1=Chinese("北爷",33,"female")
Chinese.suiditutan()
Chinese.chadui(p1) C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 我是初始化函数,我开始运行了 我结束啦 朝着墙上就是一口黄痰 北爷 插到了前面
5、用实例调用方法
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):#self就是p1本身
print("我是初始化函数,我开始运行了")
self.mingzi=name#p1.mingzi=name
self.nianji=age#p1.nainji=age
self.xingbie=gender#这样写完之后会自动return
print("我结束啦")
def suiditutan(self):#定义了一个函数属性
print("%s 朝着墙上就是一口黄痰" %self.mingzi)
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self.mingzi)
p1=Chinese("北爷",33,"female")
Chinese.suiditutan(p1)#类调用方法
Chinese.chadui(p1)#类调用方法
p1.chadui()#实例调用方法,会自动把p1传给self
p1.suiditutan()#实例调用方法,会自动把p1传给self C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 我是初始化函数,我开始运行了 我结束啦 北爷 朝着墙上就是一口黄痰 北爷 插到了前面 北爷 插到了前面 北爷 朝着墙上就是一口黄痰
6、再实例化一个p2 增加一个类的函数属性,用实例调用一下
class Chinese:#定义了Chinese这个类
dang="当"#定义了一个数据属性dang
def __init__(self,name,age,gender):#self就是p1本身
self.mingzi=name#p1.mingzi=name
self.nianji=age#p1.nainji=age
self.xingbie=gender#这样写完之后会自动return
def suiditutan(self):#定义了一个函数属性
print("%s 朝着墙上就是一口黄痰" %self.mingzi)
def chadui(self):#又定义了一个函数属性
print("%s 插到了前面" %self.mingzi)
def eatfood(self,food):
print("%s 正在吃%s" %(self.mingzi,food))
p1=Chinese("北爷",33,"female")
p1.eatfood("黄痰")
p2=Chinese("喵爷",28,"female")
p2.suiditutan()#实例调用类的函数属性,会自动把p1传给self
p2.eatfood("黄焖鸡米饭")#实例调用类的函数属性,会自动把p1传给self C:\python35\python3.exe D:/pyproject/day24/对象相关知识.py 北爷 正在吃黄痰 喵爷 朝着墙上就是一口黄痰 喵爷 正在吃黄焖鸡米饭
python的面向对象-实例(对象)的相关知识、实例化的更多相关文章
- php有关类和对象的相关知识1
有关类和对象的相关知识 类的自动加载 类的自动加载是指,在外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类. 什么叫做“需要一个类”?通常是这样的情 ...
- Python—类和实例对象
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...
- php有关类和对象的相关知识2
与类有关的魔术常量: __CLASS__,:获取其所在的类的类名. __METHOD__:获取其所在的方法的方法名. class A{ function f1(){ echo __CLASS__: / ...
- jQuery对象和DOM对象的相关知识
所谓的DOM就是Document Object Model(文档对象模型)的缩写,或许是我水平低的缘故,感觉就是HTML的标记元素嘛,所以作者画了下面的图: 像这样的元素,就是所谓的DOM对象,获取值 ...
- python中的循环结构等相关知识
==分支结构== 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会 ...
- Python - 面向对象编程 - 什么是 Python 类、类对象、实例对象
什么是对象和类 https://www.cnblogs.com/poloyy/p/15178423.html Python 类 类定义语法 最简单的类定义看起来像这样 class ClassName: ...
- python之类的相关知识
面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ...
- python基础之面对对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- [ python ] 初始面向对象
首先,通过之前学习的函数编写一个 人狗大战 的例子. 分析下这个需求,人 狗 大战 三个事情.角色:人.狗动作:狗咬人,人打狗 先创建人和狗两个角色: def person(name, hp, ag ...
随机推荐
- C++ 字符串, 数字 相互转化
1: strL.Format("%x", 12); //将数字12转换成,16进制字符(C),存于strL 2: strH.Format("%x",12); / ...
- 汇编 XOR运算
XOR运算 按位异或^ 一.按位异或^ 运算符^ 1^1=0;0^0=0; //相同则为0 0^1=1;1^0=1; //不相同为1 1101^0110=1011; // asm_XOR.c ...
- [CF1010E]Store[kd-tree]
题意 有一个长方体,不知道它的位置,给出 \(n\) 个一定在长方体内的点和 \(m\) 个一定不在的点,有 \(k\) 次询问,每次询问一个点是否 在.不在.不确定 在长方体内. \(n\leq 1 ...
- HTML 列表实例
41.无序列表本例演示无序列表.<h4>一个无序列表</h4><ul> <li>咖啡</li> <li>茶</li> ...
- Windows Server 2003出现Directory Listing Denied This Virtual Directory does not allow contents to be listed.的解决方案
Directory Listing DeniedThis Virtual Directory does not allow contents to be listed. 是目录权限无法访问的问题 解决 ...
- EntityFramework Core 2.x (ef core) 在迁移中自动生成数据库表和列说明
在项目开发中有没有用过拼音首字母做列名或者接手这样的项目? 看见xmspsqb(项目审批申请表)这种表名时是否有一种无法抑制的想肛了取名的老兄的冲动? 更坑爹的是这种数据库没有文档(或者文档老旧不堪早 ...
- Unity3d-通过简单示例来理解Time.deltaTime
转载文章: Unity3d-通过简单示例来理解Time.deltaTime 2018年04月21日 18:04:14 Black_Window 阅读数:926 标签: UnityTime 更多 个人分 ...
- Linux 终端快捷键整理
一.历史命令相关快捷键 快捷键 说明 ↑.↓ 显示历史命令 !! 执行上一个命令 !n 执行历史命令中第 n 条命令 !-n 执行历史命令中倒数第 n 条命令 二.移动相关快捷键 快捷键 说明 Ctr ...
- Windos 下python2.7安装 pymssql 解决方案
最近在学python,到安装pymssql这一块遇到了不少问题. 第一:如何安装python 模块,也是最主要的问题. 可以这么理解:在安装python其它模块之前,可以先安装一个负责安装模块的模块. ...
- SpringMVC(三)-- springmvc的系统学习之数据的处理,乱码及restful
资源:尚学堂 邹波 springmvc框架视频 一.提交数据的处理 1.提交的域名称和处理方法的参数一致 (1)提交的数据:http://localhost:8080/data/hello.do?na ...