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. 【转载】C#中回滚TransactionScope的使用方法和原理

    TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成 实事上,一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完 ...

  2. Django-权限信息自定义标签

    自定义权限标签: import re from django.template import Library from django.conf import settings register = L ...

  3. vs2010 msvcr100.DLL 丢失!!! 用release 就可以了

  4. Java中的常用异常处理方法

    觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 ...

  5. org.gradle.api.publication.maven.internal.DefaultMavenFactory错误

    Error:Unable to load class 'org.gradle.api.publication.maven.internal.DefaultMavenFactory'. Possible ...

  6. POJ3680 Intervals —— 区间k覆盖问题(最小费用流)

    题目链接:https://vjudge.net/problem/POJ-3680 Intervals Time Limit: 5000MS   Memory Limit: 65536K Total S ...

  7. POJ3281 Dining —— 最大流 + 拆点

    题目链接:https://vjudge.net/problem/POJ-3281 Dining Time Limit: 2000MS   Memory Limit: 65536K Total Subm ...

  8. HDU - 1874 畅通工程续(最短路径)

    d.已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. s.最短路径 c.Dijkstra单源最短路 /* Dijkstra单源最短路 权值必须是非负 单源最短路径,Dijkstra算法 ...

  9. HBase集群出现NotServingRegionException问题的排查及解决方法

    HBase集群在读写过程中,可能由于Region Split或Region Blance等导致Region的短暂下线,此时客户端与HBase集群进行RPC操作时会抛出NotServingRegionE ...

  10. maven之setting.xml的配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...