面向对象-self这个特殊的参数
self:
1.只是一个参数。
2.在对象使用方法的时候,当前对象会作为第一个参数的实参传入
3.self相当于语言中的代词,表示当前对象本身(其他语言中也有使用this)
4.self的作用连接整个对象的所有信息。桥梁的作用!
5.self不是关键字,只是一个参数变量名而已,可以使用其他单词代替(禁止代替)
6.方法的分类(暂时):
方法中具有接受对象的参数(self)这个方法,叫做非绑定类的方法
方法中没有接受对象的参数(self)这个方法,叫做绑定类的方法
self的操作实例
#self的操作实例
#声明一个丛浩的类
class CongHao:
#成员属性---------------------------------
name = '丛浩'
sex = '女'
age = 38
color = 'yellow'
height = '180cm'
weight = '180斤'
house = '' #成员方法-----------------------------
#聊天
def talk(self):
print('对象的方法中打印',self,id(self))
print('我的名字是'+ self.name)#此处需要使用对象的属性来输出名字,性别年龄等
print('我的性别是:'+ self.sex)#此处需要使用对象的属性来输出名字,性别年龄等
print('我的年龄是:' + str(self.age))#此处需要使用对象的属性来输出名字,性别年龄等 #唱歌
def sing(self):
print('你存在于我深深的脑海里~')
#洗澡
def wash(self):
#洗澡的时候唱歌(调用自己的唱歌功能)
self.sing()
print('沐浴露和小香皂,水温干刚好~')
#吃饭
def eat(zhen):#非绑定类的方法
print('我的体重是'+zhen.weight)
print('我最喜欢吃烤羊腿~')
#self设计为接受次数的参数
def cry(self): #绑定类的方法
print('我哭了'+self+'次')
#没有self参数的方法
def smoking():
print('饭后一支烟,赛过活神仙!吸烟有害健康。') #实例化一个对象(做出一个丛浩对象)
ch = CongHao()
print('打印实例化的对象',ch,id(ch))#打印实例化的对象
#输出结果:打印实例化的对象 <__main__.CongHao object at 0x0000022F7CA4C240> 2402977890880 #修改对象信息
ch.name = '丛好'
print(ch.__dict__)
#输出结果:{'name': '丛好'} #使用对象
#调用聊天功能
ch.talk()
'''
输出结果:
对象的方法中打印 <__main__.CongHao object at 0x000001F37E4AC240> 2145307509312
我的名字是丛好
我的性别是:女
我的年龄是:38
''' #再次实例化一个对象(再做一个丛浩对象)
hnr = CongHao()
#调用聊天功能
hnr.talk()
'''
输出结果:
对象的方法中打印 <__main__.CongHao object at 0x000001B1D654B2B0> 1863316714160
我的名字是丛浩
我的性别是:女
我的年龄是:38
''' #实例化对象
ch = CongHao()
#调用洗澡方法
ch.wash()
'''
输出结果:
你存在于我深深的脑海里~
沐浴露和小香皂,水温干刚好~
''' #测试使用其他单词单体self参数
ch = CongHao()
#调用吃饭方法
ch.eat()
'''
输出结果:
我的体重是180斤
我最喜欢吃烤羊腿~
''' #没有self参数的方法的使用
#ch = CongHao()
#ch.smoking()#无法通过对象调用没有接受对象参数的方法
#CongHao.smoking()#通过类可以访问没有接受对象参数的方法
面向对象-self这个特殊的参数的更多相关文章
- 附录A培训实习生-面向对象基础构造方法和带参数的构造方法(2)
构造方法,又叫构造函数,其实就是对类进行实例化.构造方法与类同名,无返回值,也不需要void,在new时候调用.也就是说,就是调用构造方法的时候. 所有类都有构造方法,如果你不编码则系统默认生成空的的 ...
- Java面向对象_增强for可变参数与代码块
1.foreach循环 for(类型 变量名称:数组或集合){ //输出操作 } 2.可变参数:根据需要自动传入任意个数的参数,就是可变参数. 语法:返回值类型 方法名称(数据类型...参数名称){ ...
- python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇
python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v ...
- python 面向对象简单理解
面向对象: 是一种程序设计范型 作用: 提高软件的重用性和灵活性,扩展性 世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体 知识点一: 代码的重用 举个栗子 比如小月月有了一个女朋友1 ...
- 第七章:Python基础のXML操作和面向对象(一)
本課主題 XML介绍与操作实战 shutil 模块介绍与操作实战 subprocess 模块介绍与操作实战 初探面向对象与操作实战 本周作业 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: ...
- 面向对象:三大特性、类成员、property
一.类的基础知识 python 一切皆为对象. 我们以前的str,list,int 都是对象. 1.1 类的定义 与 调用 class 关键字用来定义类,注意类名首字母大写. 类的调用,先实例化一个类 ...
- Flask开发技巧之参数校验
Flask开发技巧之参数校验 目录 Flask开发技巧之参数校验 1.请求参数分类 2.解决方案使用到的库 3.针对url查询参数与一般json格式 4.针对复杂json格式数据 本人平时开发中使用的 ...
- JavaSE中级篇1 — 核心思想:面向对象 — 更新完毕
1.面向对象编程思想(重点中的重点) 题外话: 其他都还可以是技术,但这里是走自己的路--面向对象编程,即:OOP,养成的思想就是:万物皆对象,懂得把东西抽离出来 这一部分记的理论知识很多,而且需要自 ...
- Java 相关注意事项小结
程序是一系列有序指令的集合: Java主要用于开发两类程序: 1)桌面应用程序2)Internet应用程序1,Java程序:三步走,编写--编译--运行:2,使用记事本开发:1)以.java为后缀名保 ...
随机推荐
- hibernate载入持久化对象的两种方式——get、load
一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更 ...
- 自己动手写CPU之第九阶段(7)——MIPS32中的LL、SC指令说明
将陆续上传新书<自己动手写CPU>,今天是第46篇. 在MIPS32指令集中有两条特殊的存储载入指令:链接载入指令LL.条件存储指令SC,本次将介绍这两条指令.在兴许将实现这两条指令. 9 ...
- Marlin固件之—:基础入门与測试
一.Marlin的简介 Marlin固件是一个3D打印的开源固件,3D打印固件有很多,Marlin最为健全和强大,当然相对也会复杂一些.使用Gcode控制爱.Gcode是数控机床等工控控制使用范围较广 ...
- golang-----golang sync.WaitGroup解决goroutine同步
go提供了sync包和channel来解决协程同步和通讯.新手对channel通道操作起来更容易产生死锁,如果时缓冲的channel还要考虑channel放入和取出数据的速率问题. 从字面就可以理解, ...
- MAC Safari上网弹窗弹广告的最新有效解决方法
7.3更新: 之前更改DNS好了一段时间,最近在打开其它网页时还是会弹广告: 最终解决方法: 安装MALWAREBYTES 3清理一下: 网址:Free Cyber Security & An ...
- C.Candy
There are NN children standing in a line. Each child is assigned a rating value. You are giving cand ...
- spring mvc带参数重定向
http://blog.csdn.net/jackpk/article/details/19121777/ https://isudox.com/2017/02/16/spring-mvc-redir ...
- POJ1077 Eight —— 双向BFS
主页面:http://www.cnblogs.com/DOLFAMINGO/p/7538588.html (代码一直在精简完善……) 代码一:两个BFS, 两段代码: 用step控制“你一步, 我一步 ...
- codeforces B. Sereja and Mirroring 解题报告
题目链接:http://codeforces.com/contest/426/problem/B 题目意思:给出一个n * m的矩阵a,需要找出一个最小的矩阵b,它能通过several次的mirror ...
- Android自定义控件实现带有清除按钮的EditText
首先声明我也是参考了别人的思路,只是稍微做了下修改,增加显示密码与隐藏密码,没有输入字符串时让EditText进行抖动,废话少说这里附上效果图 效果很赞有木有 那么怎么实现这种效果呢?那就跟着我一起来 ...