IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python之给类动态添加方法、运算符重载 -> 正文阅读

[Python知识库]python之给类动态添加方法、运算符重载

1.给类动态动态添加方法

在编写类的时候一般会把方法写进类中,但是如何实现给实例化对象在类外添加方法呢,这时就出现了一个类,即MethodType类,它的作用便是动态添加方法。具体看实例

from types import MethodType#导入动态添加方法类
class Cat(object):#创建猫类
    def eat(self):#吃饭方法
        print("猫在吃饭")

cat=Cat()#实例化对象
def run(self):#猫类外设置奔跑方法
    print("猫在奔跑")
cat.run=MethodType(run,cat)#在猫类中加入奔跑方法
cat.eat()#调用猫的吃饭方法
cat.run()#调用加入后的猫的奔跑方法

结果是

猫在吃饭
猫在奔跑

2.运算符重载

运算符重载意味着在类方法中拦截内置的操作,也就是说当类的实例出现在内置操作中,Python自动调用我们的方法,并且我们的方法的返回值变成了相应操作的结果。这里主要是对pow运算符和lt运算符进行重载,具体看实例

import operator#导入operator类
class Score(object):#创建score类,重载pow运算符
    def __init__(self,num):#接收参数
        self.num = num
    #pow运算符重载
    def __pow__(self,other):#两个参数
        return Score(self.num**other.num)
    def __str__(self):
        return "求得的数为:"+str(self.num)
class Grade(object):#创建grade类,重载lt运算符
    def __init__(self,num):#接收参数
        self.num = num
    #lt运算符重载
    def __lt__(self, other):#两个参数
        if self.num > other.num: #第一个数大于第二个数,输出第一个数
            return self.num
        if self.num == other.num:#两者相等,输出0
            return 0
        if self.num < other.num:#第一个数小于第二个数,输出第二个数
            return other.num
#实例化对象
s1=Score(5)
s2=Score(3)
g1 = Grade(2)
g2 = Grade(3)
#打印结果
print(s1**s2)
print(operator.lt(g2, g1))

?结果是

求得的数为:125
3?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:57:04  更:2022-01-11 23:59:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:25:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码