面向对象之反射

一:什么是反射

  反射是指程序可以访问,检测和修改它本身状态或行为的一种能力。

二:Python面向对象的反射:通过字符串的形式操作对象相关的属性。

python中一切事物都是对象(都可以使用反射)

三:反射的好处

  1实现可插拔机制

    反射的好处就是,可以事先定义好接口,接口只有在被完成后才会真正执行,这实现了即插即用,即你可以事先把主要的逻辑写好(只定义接口),然后后期再去实现接口的功能

class FtpClient:
    ‘ftp客户端,但是还么有实现具体的功能‘
    def __init__(self,addr):
        print(‘正在连接服务器[%s]‘ %addr)
        self.addr=addr

需要继续编辑的代码

#from module import FtpClient
f1=FtpClient(‘192.168.1.1‘)
if hasattr(f1,‘get‘):
    func_get=getattr(f1,‘get‘)
    func_get()
else:
    print(‘---->不存在此方法‘)
    print(‘处理其他的逻辑‘)

接口

  2动态导入模块

时间: 2024-10-01 07:24:40

面向对象之反射的相关文章

Python之面向对象进阶------反射(Day26)

一 classmethod class Classmethod_Demo(): role = 'dog' @classmethod def func(cls): print(cls.role) Classmethod_Demo.func() staticmethod class Staticmethod_Demo(): role = 'dog' @staticmethod def func(): print("当普通方法用") Staticmethod_Demo.func() clas

Python学习【第14篇】:面向对象之反射以及内置方法

面向对象之反射及内置方法 一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被

深入理解面向对象与反射

面向对象 周志明在<深入理解JVM>一书中这样写道:在软件业发展初期,程序编写以算法为核心,程序员把数据和过程分别作为独立的个体来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思想是站在计算机的角度去抽象问题和解决问题,称为面向过程的:编程思想,而面向对象的编程思想是站在现实世界的角度去抽象和解决问题,它把数据和行为都看作是对象的一部分,这样使得程序员可以以符合现实世界的思维来编写和组织程序” 但是由于现实世界与计算机世界之间不可避免的存在一些差异,例如,人很难想象现实中的对

面向对象基础 反射

一 .反射(根据字符串的形式去对象(某个模块)中操作成员) python中的反射功能是有以下四个内置函数提供:hahasattr.getattr.aetattr.delattr,这四个函数分别用于对对象内部执行:检查是否含有某成员,获取成员.设置成员.删除成员 1.通过字符串的形式来导入模块 inp=input("请输入模块名:") mo=__import__(inp) 2.通过字符串的形式,在模块中寻找指定的函数,并执行 两种情况:1.如果在同级目录下面直接用__import__(&

第三十四篇 Python面向对象之 反射(自省)

什么是反射? 反射的概念是由Smith在1982年提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成就. 四个可以实现自省的函数,是Python的内置函数 下列方法适用于类和对象 先看这四个方法对实例(b1)的使用 # 演示代码 class BlackMedium: feature = 'Ugly' def __init__(self, nam

Python面向对象之反射,双下方法

一. 反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) class Foo:    f = '

面向对象之: 反射和双下方法

目录 一, 反射 二, 函数VS方法 三, 双下方法 一, 反射 反射:程序可以访问,检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性 python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数,下列方法适用于类和对象(一切对象,类本身也是对象) # 对实例化对象的示例 class Foo: f = '类的静态变量' def __init__(self, name, age): self.name = name sel

【python之路】【之前没搞明白】8面向对象(反射,非常重要)

反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩. 一句话解释:通过字符串的形式操作对象相关的属性 四个函数: 方法 作用 hasattr(*args, **kwargs) 返回对象里面是否有这个属性 *args:目标实例.对象.eg:p, Person **kwargs:属性的名字,以字符串形

面向对象之反射及内置方法

一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定