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的面向对象-实例(对象)的相关知识、实例化的更多相关文章

  1. php有关类和对象的相关知识1

    有关类和对象的相关知识 类的自动加载 类的自动加载是指,在外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类. 什么叫做“需要一个类”?通常是这样的情 ...

  2. Python—类和实例对象

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...

  3. php有关类和对象的相关知识2

    与类有关的魔术常量: __CLASS__,:获取其所在的类的类名. __METHOD__:获取其所在的方法的方法名. class A{ function f1(){ echo __CLASS__: / ...

  4. jQuery对象和DOM对象的相关知识

    所谓的DOM就是Document Object Model(文档对象模型)的缩写,或许是我水平低的缘故,感觉就是HTML的标记元素嘛,所以作者画了下面的图: 像这样的元素,就是所谓的DOM对象,获取值 ...

  5. python中的循环结构等相关知识

    ==分支结构== 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会 ...

  6. Python - 面向对象编程 - 什么是 Python 类、类对象、实例对象

    什么是对象和类 https://www.cnblogs.com/poloyy/p/15178423.html Python 类 类定义语法 最简单的类定义看起来像这样 class ClassName: ...

  7. python之类的相关知识

    面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ...

  8. python基础之面对对象

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  9. [ python ] 初始面向对象

    首先,通过之前学习的函数编写一个 人狗大战 的例子. 分析下这个需求,人 狗 大战  三个事情.角色:人.狗动作:狗咬人,人打狗 先创建人和狗两个角色: def person(name, hp, ag ...

随机推荐

  1. Caffe学习系列——工具篇:神经网络模型结构可视化

    Caffe学习系列——工具篇:神经网络模型结构可视化 在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py ...

  2. STEAM 自动安装时提示C++ 安装不了等问题

    [情况] 今天安装游戏, 安装时自动安装 Visual C++ 2015 x64 Minimum Runtime ....不成功, 提示网络源不可使用, 或者使用以下安装源 C:\ProgramDat ...

  3. Android与Libgdx环境配置

    此处所说的是基于windows和android版本的libgdx环境配置. 1. 下载所需软件 JDK 1.7. 下载地址: window x86版本地址: http://www.oracle.com ...

  4. python语言程序设计2

    1, 代码高亮色彩体系 2, 缩进,一行代码开始前的空白区域,表达程序的格式框架 单层缩进,多层缩进 特点 概念,缩进是语法的一部分,缩进不正确的话可能会导致程序运行错误 用处(意义),是表达代码间包 ...

  5. [LOJ#2878]. 「JOISC 2014 Day2」邮戳拉力赛[括号序列dp]

    题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没 ...

  6. R绘图 第五篇:绘制散点图(ggplot2)

    ggplot2包中绘制点图的函数有两个:geom_point和 geom_dotplot,当使用geom_dotplot绘图时,point的形状是dot,不能改变点的形状,因此,geom_dotplo ...

  7. 算法练习-002-返回一个set数组

    题目描述: 写一个函数,它的作用是接受一个整数(假设为num),返回一个数组,数组的长度为num, 数组中的内容为随机的0至(num-1)的值,并且不能重复.比如num为5的话,数组可能是[1,0,3 ...

  8. Jq_select的操作

    jQuery获取Select选择的Text和Value: 语法解释: $("#select_id").change(function(){//code...}); //为Selec ...

  9. C#_Stream

    IO操作基本上需要用到Stream相关的子类,因此这类问题在CSDN问得也是比较多.其实对于Stream来说,操作起来比较简单,只要对细节的处理稍微注意一下,相信在使用它的时候也会得心应手. 对于St ...

  10. python中eval方法的使用

    eval函数就是实现list.dict.tuple与str之间的转化str函数把list,dict,tuple转为为字符串# 字符串转换成列表a = "[[1,2], [3,4], [5,6 ...