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 ...
随机推荐
- STM32-M0中断优先级介绍
先解释中断优先级,后面讲代码的实现. 差异:M0的中断优先级相比于M4,没有用到分组,且只用到了2个bit位(即0~3)来设置,数值越小,优先级越高:同等优先级,根据终端号的大小来决定谁先执行. 根据 ...
- C#精华面试题及答案 三
PS.学了两三年的软件开发到头来发现连一些基本的东西都没掌握,通过面试题来检验自己的水平,让学习变得更加有方向性,也为将来择业而打下基础,不至于到时候手忙脚乱. 一.选择,填空题 1. 在ADO.NE ...
- 2PC/3PC到底是啥
讨论 提到2PC/3PC首先想到的是它是一致性协议,而且经常把它和Paxos协议放在一起比较,并且经常看到这样的说法"世上只有一种一致性算法,那就是Paxos",2PC/3PC并不 ...
- OLEDB 命令转换组件的用法
在数据流任务组件中,OLEDB 命令转换组件对输入的每行数据调用TSQL,该组件能够把输入的数据作为参数,因此,该转换组件主要用于运行参数化的查询. 命令转换组件的配置十分简单,只有三个可编辑属性,位 ...
- nginx location 正则匹配
nginx 统计语句1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l2.统计访问URL统计PV awk '{print $7 ...
- 学习git 新手。这个写的不错
转自:https://www.cnblogs.com/wupeiqi/p/7295372.html 版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景 ...
- 浅谈SVG(可缩放的矢量图形)
前一段项目中用到了svg图片就和其他的元素一样 直接引用就可以展示在页面上,因为项目紧张没有仔细的研究,最近在扩展自己的基础知识,偶然看到了这个东西,于是总结了一些博客园中关于这个svg的基础知识,只 ...
- 吴恩达《AI For Everyone》_练习英语翻译_待更新
AI For Everyone https://www.coursera.org/learn/ai-for-everyone 讲师: Andrew Ng (吴恩达) CEO/Founder Landi ...
- GitHub笔记(一)——本地库基础操作
零.基础概念理解——可以访问廖雪峰老师的网站https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c01 ...
- ctf入门常见类别
原视频在这里:实验吧-名师指导http://www.shiyanbar.com/course-video/watch-video/cid/419/vid/2000网络安全从业者尝试介绍 web应用渗透 ...