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 ...
随机推荐
- python基础学习1-列表使用
python 列表相关操作方法 namelist = ['a','b','c','d','1','2','3','4'] namelist1 = ['a','b','c','d','1','2','3 ...
- suggest braces around empty body in an 'if' statement
出现这种错误是要求加大括号
- SQL调优日志--内存问题排查入门篇
概述 很多系统的性能问题,是由内存导致的.内存不够会导致页面频繁换入换出,IO队列高,进而影响数据库整体性能. 排查 内存对数据库性能非常重要.那么我当出现问题的时候,我们怎么排查性能问题呢? 存在问 ...
- Js_特效
事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcE ...
- jmeter-如何在JDBC Request中添加多条语句执行
1.JDBC Connection Configuration中配置Database URL时在URL后面添加 ?allowMultiQueries=true 2.JDBC Request中添加语句 ...
- 接口自动化测试框架-AIM
最近在做公司项目的自动化接口测试,在现有几个小框架的基础上,反复研究和实践,搭建了新的测试框架.利用业余时间,把框架总结了下来. AIM框架介绍 AIM,是Automatic Interface Mo ...
- 使用开源项目免费申请 JetBrains 全家桶 IDEA 开源许可证
JetBrains 公司旗下的 IDEA 功能都十分强大,深受各种编程语言相关的程序员的喜爱.我个人而言,经常使用 WebStorm,也使用过 PyCharm. 正常情况下 JetBrains 公司的 ...
- 微软职位内部推荐-Senior Software Development Engineer_Commerce
微软近期Open的职位: Are you looking for a high impact project that involves processing of billions of dolla ...
- io整理
http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html
- 《linux内核分析》第一周(2.22~2.28)
潘恒 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的? ...