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 ...
随机推荐
- [APIO2013]机器人[搜索、斯坦纳树]
题意 题目链接 分析 记 g(d,x,y) 表示从 (x,y) 出发,方向为 d 到达的点,这个可以通过记忆化搜索求出,注意如果转移成环(此时向这个方向走没有意义)要特判. 记 f(l,r,x,y) ...
- 记一次Java加密加签算法到php的坑
此文为本人原创首发于 http://www.35coder.com/convert_encryption_codes_to_php/. 写代码的经历中,总少不了与外部的程序对接,一旦有这样的事,往往周 ...
- Android 实现 WheelView
wheel view 目录(?)[-] Android WheelView效果图 网上的开源代码 实现思路 扩展Gallery 如何使用 我们都知道,在iOS里面有一种控件------滚筒控件(Whe ...
- 关于hive的优化
首先hive本质就是mapreduce,那么优化就从mapreduce开始入手. 然而mapreduce的执行快慢又和map和reduce的个数有关,所以我们先从这里下手,调整并发度. 关于map的优 ...
- 云服务器+tomcat+mysql+web项目搭建部署
云服务器+tomcat+mysql+web项目搭建部署 1.老样子,开头墨迹两句. 作为我的第二篇文章,有很多感慨,第一篇人气好低啊,有点小丧气,不过相信我还是经验少,分享的都是浅显的,所以大家可能不 ...
- 现代OpenGL渲染管线介绍
原文摘选自 现代OpenGL渲染管线介绍 此文对最新的OpenGL做一个简单的介绍,如有理解错误,敬请指正.英文原文: https://glumpy.github.io/modern-gl.html ...
- 如何在unity中使用龙骨动画
龙骨 龙骨是Egret公司的一个用来做动画的软件,本文分享一下如何在Unity2D中使用龙骨导出的2D动画 导出动画 在龙骨中文件->导出,导出动画数据和纹理到Unity的项目中,如果打包了的话 ...
- Unity3D与C#网站收藏
siki学院(目前学习ing) http://www.sikiedu.com/ 雨松MOMO研究院 http://www.xuanyusong.com/ 知乎:Unity 开发教程相关回答(初步了解下 ...
- POW的重力之美
定律一:每一个UTXO都保持其状不变,直到有外力迫使它改变这种状态为止--艾萨克•牛顿,原理2.0 在过去的几年里,关于比特币的工作量证明(PoW)所造成的"巨大的能源浪费"已经被 ...
- React Native 'config.h' file not found 问题、 'glog/logging.h' file not found 问题、configure: error: C compiler cannot create executables问题解决过程记录
1.在github 上面 git clone 一个RN 项目代码,npm install (yarn)后,准备运行iOS工程,发现'config.h' file not found ,恶心!!! 百度 ...