特殊方法|学习笔记

简介: 快速学习 特殊方法

开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理特殊方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/601/detail/8757


特殊方法


内容简介:

一、 特殊方法含义

二、 文档位置

三、 特殊方法介绍

 

一、特殊方法含义

特殊方法也称为魔术方法,特殊方法都是使用_开头和结尾的;特殊方法一般不需要我们手动调用,需要在一些特殊情况下自动执行

 

二、文档位置

Language Reference(语言参考)—Data model(数据模型)—Special method names(特殊方法名字)列出所有特殊方法的名字位置。

 

 

三、特殊方法介绍

实例:

定义一个 Person 类

class Person(object):

“““人类”””

def _init_(self,name,age):

 self.name = name

 self.age = age

 

1. _str_() 特殊方法

_str_() 这个特殊方法会在尝试将对象转换为字符串的时候调用

它的作用可以用来指定对象转换为字符串的结果(print函数)

def _str_(self):

  return ‘ Person [name=%s , age=%d]’%(self.name,self.sge)

创建两个 person 类的实例

p1 = Person(‘孙悟空’,18)

p2 = Person(‘猪八戒’,28)

打印 p1

当打印一个对象时,实际上打印的是对象中特殊方法 _str_() 的返回值

Print (p1)

 

2. _repr_() 特殊方法

_repr_() 这个特殊方法会在对当前对象使用 repr() 函数时调用

它的作用是指定对象在‘交互模式’中直接输出的效果

def _repr_(self):

 return ‘Hello’

print(repr(p1))打印得出

 

3. _gt_特殊方法

_gt_会在对象做大于比较的时候调用,该方法的返回值将会作为比较的结果

它需要两个参数,一个 self 表示当前对象,other 表示和当前对象比较的对象

def _gt_(self,other):

return self.age > other.age

print(p1 > p2)

print(p2 > p1)

 

关于大于小于等于的特殊方法:

object._lt_(self,other) 小于<

object._le_(self,other) 小于等于<=

object._eq_(self,other) 等于==

object._ne_(self,other) 不等于!=

object._gt_(self,other) 大于>

object._ge_(self,other) 大于等于>=

 

4. 获取长度的 _len_() 方 法

_len_() 获取对象的长度

 

5.布尔特殊方法

object._bool_(self) 可以通过 bool 来指定对象转换为布尔值的情况

def _bool_(self):

return self.age > 17

print(bool(p1))打印得出

 

If p1:

print(p1.name,’已经成年了’)

else:

print(p1.name,’还未成年了’)

 

6.对对象做加法减法的特殊方法介绍

object._add_(self,other)

object._sub_(self,other)

object._mul_(self,other)

object._matmul_(self,other)

object._truediv_(self,other)

object._floordiv_(self,other)

object._mod_(self,other)

object._divmod_(self,other)

object._pow_(self,other[,modulo])

object._lshift_(self,other)

object._rshift_(self,other)

object._and_(self,other)

object._xor_(self,other)

object._or_(self,other)

相关文章
|
存储 安全 C++
C++ 类 & 对象初学者学习笔记
面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。
91 0
|
设计模式 算法 关系型数据库
关于本人对学习知识的方法的理解
关于本人对学习知识的方法的理解
69 1
|
运维 Kubernetes 虚拟化
结课(有方法,请注意) | 学习笔记
快速学习结课(有方法,请注意)
结课(有方法,请注意) | 学习笔记
|
Java Scala 开发者
方法|学习笔记
快速学习方法。
方法|学习笔记
|
安全 开发者 Python
魔法方法介绍 | 学习笔记
快速学习 魔法方法介绍
魔法方法介绍 | 学习笔记
|
存储 PHP 开发者
类内部对象|学习笔记
快速学习类内部对象
类内部对象|学习笔记
|
Java 编译器 PHP
C++学习笔记1:类的使用
C++学习笔记1:类的使用1. 类的定义与使用2. 类的成员变量和成员函数3. 构造函数4. 析构函数5.5 友元函数和友元类
115 0
C++学习笔记1:类的使用
|
网络协议 程序员 测试技术
方法介绍和使用|学习笔记
快速学习方法介绍和使用
|
JSON 数据格式 开发者
方法的封装| 学习笔记
快速学习方法的封装
|
网络协议 编译器 测试技术
方法和函数区别说明|学习笔记
快速学习方法和函数区别说明