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这个特殊的参数的更多相关文章

  1. 附录A培训实习生-面向对象基础构造方法和带参数的构造方法(2)

    构造方法,又叫构造函数,其实就是对类进行实例化.构造方法与类同名,无返回值,也不需要void,在new时候调用.也就是说,就是调用构造方法的时候. 所有类都有构造方法,如果你不编码则系统默认生成空的的 ...

  2. Java面向对象_增强for可变参数与代码块

    1.foreach循环 for(类型 变量名称:数组或集合){ //输出操作 } 2.可变参数:根据需要自动传入任意个数的参数,就是可变参数. 语法:返回值类型 方法名称(数据类型...参数名称){ ...

  3. python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇

    python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v ...

  4. python 面向对象简单理解

    面向对象: 是一种程序设计范型 作用: 提高软件的重用性和灵活性,扩展性 世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体   知识点一: 代码的重用 举个栗子 比如小月月有了一个女朋友1 ...

  5. 第七章:Python基础のXML操作和面向对象(一)

    本課主題 XML介绍与操作实战 shutil 模块介绍与操作实战 subprocess 模块介绍与操作实战 初探面向对象与操作实战 本周作业 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: ...

  6. 面向对象:三大特性、类成员、property

    一.类的基础知识 python 一切皆为对象. 我们以前的str,list,int 都是对象. 1.1 类的定义 与 调用 class 关键字用来定义类,注意类名首字母大写. 类的调用,先实例化一个类 ...

  7. Flask开发技巧之参数校验

    Flask开发技巧之参数校验 目录 Flask开发技巧之参数校验 1.请求参数分类 2.解决方案使用到的库 3.针对url查询参数与一般json格式 4.针对复杂json格式数据 本人平时开发中使用的 ...

  8. JavaSE中级篇1 — 核心思想:面向对象 — 更新完毕

    1.面向对象编程思想(重点中的重点) 题外话: 其他都还可以是技术,但这里是走自己的路--面向对象编程,即:OOP,养成的思想就是:万物皆对象,懂得把东西抽离出来 这一部分记的理论知识很多,而且需要自 ...

  9. Java 相关注意事项小结

    程序是一系列有序指令的集合: Java主要用于开发两类程序: 1)桌面应用程序2)Internet应用程序1,Java程序:三步走,编写--编译--运行:2,使用记事本开发:1)以.java为后缀名保 ...

随机推荐

  1. JavaScript你所不知道的困惑(2)

    困惑一: var obj1 = new Object(); var obj2 = obj1; obj1.name = "阳光小强"; alert(obj2.name); //输出结 ...

  2. openstack 中国联盟公开课參会总结

    主流趋势 1. openstack defcore 互操作性认证.打通不同的openstack 厂商之间的连接 2. 首批OpenStack管理员认证(COA)将于2016年进行 3. 混合云应用广泛 ...

  3. HDOJ1006

    #include <cstdio>#include <algorithm>using namespace std;const double UB=43200;const dou ...

  4. C/C++用状态转移表联合函数指针数组实现状态机FSM

    状态机在project中使用很的频繁,有例如以下常见的三种实现方法: 1. switch-case 实现.适合简单的状态机. 2. 二维状态表state-event实现.逻辑清晰.可是矩阵通常比較稀疏 ...

  5. inheritance super overrides printMethod in Superclass override重写父方法

    Core Java Web Page http://horstmann.com/corejava.html [ inheritance ] package v1ch05.inheritance; im ...

  6. yarn笔记

    常用命令: 创建项目:yarn init 安装依赖包:yarn == yarn install 添加依赖包:yarn add Yarn命令列表 命令 操作 参数 标签 yarn add 添加依赖包 包 ...

  7. Ubuntu 配置 nfsserver

    https://help.ubuntu.com/lts/serverguide/network-file-system.html#nfs-installation 网络文件系统 (NFS) NFS 允 ...

  8. Hadoop 中的 (side data) 边数据

    一.用途 边数据是作业所需的额外的只读数据,通常用来辅助主数据集: 二.方法 1.利用Configuration类来配置,利用setter()和getter()可方便的使用,方便存储一些基本的类型: ...

  9. (C)inline关键字

      背景(C&C++中) 一.inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义. 表达式形式的宏定义一例:#define ExpressionNam ...

  10. hihocoder 1015 KMP(找多个位置的 【*模板】)

    #1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...