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 = ' ...
随机推荐
- mongoBD增删改查
查询方法一: db.ResDevices.find({"RegInfo.DeviceID": "d064b09ed28b2e988e4dc83adfb4c1"} ...
- JSON数据转对象遍历
String json = "[{\"n\":\"北京\",\"i\":11,\"p\":0,\"y ...
- DB help
using Dapper; using System; using System.Collections; using System.Collections.Generic; using System ...
- FFT及NTT
FFT--快速傅里叶变换(附NTT--快速数论变换) FFT是一种能在O(nlogn)时空复杂度内求解两个函数卷积的优秀算法. 算法思想(DFT): 对于函数 \(f(x)=\Sigma_{i=0}^ ...
- 查看服务器cpu 核心数
cpu相关信息所在文件是 /proc/cpuinfo 物理cpu数 # grep "physical id" /proc/cpuinfo | sort | uniq | wc -l ...
- PHP 错误设置
错误显示设置 设置:那些错误该显示,以及该如何显示 在PHP中,有两种方式来设置当前脚本的错误处理 1.PHP配置文件--php.ini 修改配合文件需要重启服务 display_error:是否显示 ...
- Codeforces Round #648 (Div. 2) A~F题解
开始补cf了,还是记录一下,加深思路,打的应该都是div2.题面不截图了,直接说题意,思路,代码. A 题意:给一个01矩阵,两个人轮流填格子,仅当第i行,第j列全为0时才能填,不能填的人输,问谁赢? ...
- 第二章 数据和C
2.1错误和警告 如果输入这个程序的过程中出现错误(error),比如少了一个分号,编译器会给出语法错误消息.即使输入正确,编译器还可能发出这样的警告(warning):"警告------从 ...
- Salesforce Javascript(四) 展开语法 ...
本篇参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax Sale ...
- flutter---->阿里云oss的插件
目前为止,阿里云官方并没有dart版本的oss sdk,所以才开发了这个插件flutter_oss_aliyun提供对oss sdk的支持. flutter_oss_aliyun 一个访问阿里云oss ...