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.什么是反射:
    把字符映射到实例的变量或实例的方法,然后可以去执行调用、修改
    反射的本质(核心):基于字符串的事件驱动,利用字符串的形式去操作对象/模块中成员(方法、属性)
2.反射的四个重要方法
    1)getattr获取对象属性/对象方法
    2)hasattr判断对象是否有对应的属性及方法
    3)delattr删除指定的属性
    4)setattr为对象设置内容
"""
class TestObject:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def test(self):
        print("执行test方法")
def a():
    print("类的外部方法")
if __name__ == '__main__':
    """1.getattr 获取对象属性、对象方法"""
    xiaoyu = TestObject("小于",20)
    #获取对象的属性
    print(getattr(xiaoyu,"name"))
    #获取对象的方法
    result = getattr(xiaoyu,"test")
    print(type(result))
    result()
    """2.hasattr 判断对象是否有对应的属性、方法"""
    if hasattr(xiaoyu,"address"):
        print(getattr(xiaoyu, "address"))
    if hasattr(xiaoyu,"name"):
        print(getattr(xiaoyu, "name"))
    """3.delattr 删除属性"""
    # delattr(xiaoyu,"name")
    """4.setattr 为对象设置内容"""
    #修改属性的值
    setattr(xiaoyu,"name","liuwei")
    print(getattr(xiaoyu, "name"))
    #修改方法
    setattr(xiaoyu,"test11",a)
    getattr(xiaoyu,"test11")()
    #相当于增加了test11方法
    xiaoyu.test11()
"""
去实现某个业务,定义类,类里面封装了很多方法,提供一个统一的入口能够调用各种方法
业务:登录   退出  注册  注销
"""
class Test:
    func_list = ["login","loginOut","register","delete"]
    def login(self):
        print("这是登录")

    def loginOut(self):
        print("这是退出")

    def  register(self):
        print("这是注册")

    def delete(self):
        print("这是注销")

    #1.login    2.loginOut  3.register  4.delete
    def run(self,num):
        getattr(self,self.func_list[num-1])()
num = int(input("请输入你的操作(1.login    2.loginOut  3.register  4.delete):"))
Test().run(num)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:05:39  更:2022-02-14 21:07:39 
 
开发: 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/15 23:51:06-

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