Python_11 类的方法
一、查缺补漏
1. 实例方法必须用类实例化对象()来调用,用类来调用时会执行,但是self中不是实例化类地址而是传的字符串
二、类中的方法
1. 实例方法
1. 定义在类里面的普通方法(函数)
2. 第一个参数必须是类实例,在方法调用的时候会自动传递,这个参数名称可以随便定义默认self
3. 类内部:self.方法名称()
4. 类外部:实例.方法名称()

2. 类方法
1. 定义在类中,通过@classmethod修饰的普通方法就叫类方法
2. 第一个参数为当前类,这个参数的名称可以随便定义默认使用cls定义,但是用self调用
3. 类内部:self.方法名称()
4. 类外部:类.方法名称() 和类实例.方法名称()

3. 静态方法(不需要传任何参数,自己可以定义参数不用写self参数,其他和类方法一致)
1. 定义在类中,通过@staticmethod修饰的普通方法就叫静态方法
2. 默认无需传任何参数
3. 类内部:self.方法名称()
4. 类外部:类.方法名称()

4. 私有方法 (私有的函数体)
1. 双下划线开头的方法就叫私有方法
2. 传参无区别和普通方法一致
3. 类内部:self._ _方法名()
4. 类外部:不允许访问,可以强行访问,但是最好不用
5. _函数名,_ _函数名_ _方法和属性,就算不是私有的也不要在外部去访问,可能是开发预留之后要用到的

5. 总结
1. 实例方法:一般要实现某些功能用实例方法,常用
2. 类方法:类没有初始化方法,也不需要初始化的时候传任何参数进来,只传self,不想去实例化类时候用
3. 静态方法:类没有初始化方法,也不需要初始化的时候传任何参数进来,不用传self,也不用去实例化类
4. 类方法和静态方法的使用一般是在需要运算出结果时但又不需要实例化类时使用
5. 私有方法:在类的内部使用,不希望被外部使用,类里面某些方法的辅助方法,用于封装
三、类的特性:继承、封装、多态 所有类统一都继承的类叫基类object,默认继承
1. 一些概念:
1. 什么继承:子类继承父类,就能直接使用父类的属性和方法(私有属性和方法除外) 继承过来之后就可以访问属性
2. 什么是封装:隐藏实现细节,只对外提供某些功能
3. 什么是多态:还没讲
2. 单继承--自动化不用
1. 写法:class 新函数名(要继承的函数名)

2. 初始化子类:初始化之后会自动去调用初始化方法,如果子类没有初始化方法,会去父类找初始化方法去执行
子类有先用子类的,没有用父亲的

3. 子类调用自己的方法:子类和父类有同名的方法和属性,优先使用子类自己的方法和属性
子类没有实现某个方法,他会去父类找,找到了就执行父类的方法
查找顺序:调用时先找子类之后找父类

4. 子类直接调用父类的方法 super().父类方法名() 子类和父类都有但是想用父类的
查找顺序:图1先查找父类,在执行子类;图2只查找父类,父类中没有的会报错

普通方法、初始化方法(__init__)有区别在多继承时,单继承无区别
父类名称().__init__() 多继承会导致重复支持父类的初始化方法,单继承也会调用两次
super().__init() 调用父类方法推荐使用
5. 继承的使用场景
1. 拓展父类的功能在父类和子类同名方法时

2. 重写父类【父类和子类同名方法】

6. 需要使用父类方法,避免重实现
7. 继承之后对父类方法的修改原则
1. 父类已经实现的功能,不要去修改父类的方法【不要做】
2. 如果需要你可以对父类方法进行功能拓展【可以做】
Python_11 类的方法的更多相关文章
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
- oracle调用JAVA类的方法
导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1.操作系统需要拥有支持loadjava命令的jdk. 2.加 ...
- C#动态创建和动态使用程序集、类、方法、字段等
C#动态创建和动态使用程序集.类.方法.字段等 分类:技术交流 (3204) (3) 首先需要知道动态创建这些类型是使用的一些什么技术呢?其实只要相关动态加载程序集呀,类呀,都是使用反射,那么动 ...
- python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)
1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- RBAC类的方法
rbac类的 方法 authenticate($map,$model='')方法 传入查询用户的条件和用户表的MODEL 返回数组包含用户的信息 saveAccessList($authId=null ...
- java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊
java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊 java 调用 C# 类库搞定,可以调用任何类及方法,很简单,非常爽啊 总体分三步走: 一.准备一个 C# 类库 (d ...
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
- 深入.net(类及方法)
.net 的命名规则: 帕斯卡命名法 ----- 多个单词说明,且直接连接,并首字母大写(类名.方法名.属性名....) 骆驼命名法---------多个单词说明,且直接连接,并首字母大写,第一个字母 ...
- PHP加载另一个文件类的方法
加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php class a { public $name = ' ...
随机推荐
- constexpr 和常量表达式
常量表达式(是const expression) 是指值不会改变并且在编译过程中就能得到计算结果的表达式.显然,字面值属于常量表达式,用常量 表达式初始化的const 对象也是常量表达式.后面将会提到 ...
- 2021.06.18 思科anyconnect安全移动客户端通知
mac系统更新后,开关机后都会弹出思科anyconnect安全移动客户端通知的弹框,很烦,所以要干掉它! 打开终端,执行以下两行命令即可: cd /Library/LaunchAgents/ mv / ...
- ios装包
一.下载爱思助手 二.找到本机设备 注:如果未弹出允许.拒绝调试选项可尝试换根数据线解决 三.将对应包体文件拖入本机设备
- 【Beat】Scrum Meeting 3
时间:2021年6月28日 1.各个成员今日完成的任务以及贡献小时数 姓名 今日完成任务 贡献小时数 鑫 进行软件测试,修改bug 4 荣娟 进行软件测试,修改bug 4 亚楠 进行软件测试,修改bu ...
- Python练习-3.12
1.给文章中的手机号打上马赛克 也就是在文章中发现手机号之后,用*或者#等这一类无法将手机号直接识别出来的符号代替 # 文章中手机号的马赛克形式化 import re content="白日 ...
- 使用go的并发性来解决Hilbert酒店问题
译自:Designing for Concurrency: the Hilbert's Hotel Problem in Go,本文使用go的并发性来解决Hilbert酒店问题.本文比较有意思的是它对 ...
- python爬虫基础教程
爬虫介绍 爬虫就是程序,是从互联网中,各个网站上爬取数据(能浏览到的网页才可以爬),做数据清洗,入库 爬虫本质: 模拟http请求,获取数据,入库 网站/app > 抓包 我们日常使用的baid ...
- GaussDB(DWS)运维:导致SQL执行不下推的改写方案
摘要:本文就针对因USING子句的书写方式可能导致MERGE INTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推. 本文分享自华为云社区<Gauss ...
- Latex符号
上标 $\hat{x}$ : \(\hat{x}\) $\widehat{x}$ : \(\widehat{x}\) $\tilde{x}$ : \(\tilde{x}\) $\widetilde{x ...
- java多线程基础小白指南--线程的状态
线程的状态比较混乱,网上的资料也是五花八门,这时候就要参考 注意截图中的最后一句话,很多人把jvm中线程状态与实际上的os线程状态搞混了,所以才会有很多乱七八糟的状态出现. 注意Runnable其实含 ...