zoukankan      html  css  js  c++  java
  • python反射

    什么是反射?

    用字符串数据类型的变量名来访问这个变量的值
     
    反射的方法 getattr hasattr setattr delattr
     
    类、对象、模块都可以使用反射
     
    # 类 静态属性 类方法 静态方法
    class Student:
        ROLE = "STUDENT"
    
    
        @classmethod
        def check_course(cls):
            print("查看课程")
    
    
        @staticmethod
        def login():
            print("登录")
    
    
    # 反射查看属性
    print(getattr(Student, "ROLE"))
    
    
    # 反射调用类方法
    getattr(Student, "check_course")()
    
    
    
    
    # 反射调用静态方法
    getattr(Student, "login")()
    
    
    # 这个方法防止用户瞎鸡儿输入
    
    
    # 下面这个方法最安全
    num = input(">>>")
    
    
    if hasattr(Student, num):
        getattr(Student, num)()

    对象

    # 对象
    # 方法 对象属性
    
    
    class A():
        def __init__(self, name):
            self.name = name
    
    
        def func(self):
            print("in func")
    
    
    a = A('sam')
    print(a.name)
    print(getattr(a, "name"))
    getattr(a, "func")()

    模块

    # 模块
    import os
    import sys
    os.rename("__init__.py", "init")
    getattr(os, "rename")("init", "__init__.py")
    
    
    print(os.rename)
    print(getattr(os, 'rename'))
    
    
    
    
    
    
    # 反射自己模块
    def sam():
        print("sam")
    
    
    def jack():
        print("jack")
    
    
    my_file = sys.modules["__main__"]
    
    
    getattr(my_file, "sam")()
    getattr(my_file, "jack")()
  • 相关阅读:
    SQL Server 配置管理器不见了
    SQL常用函数使用
    数据库优化
    关于百度地图js api的getCurrentPosition定位不准确的解决方法
    uni-app中使用外部字体
    不定高度,元素垂直居中
    css实现的鼠标悬浮提示
    导入
    下载
    百度地图在地图上标点显示数字
  • 原文地址:https://www.cnblogs.com/lirunsheng/p/10847850.html
Copyright © 2011-2022 走看看