博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射机制
阅读量:5334 次
发布时间:2019-06-15

本文共 1053 字,大约阅读时间需要 3 分钟。

反射:通过字符串的形式去模块,对象中找寻指定的函数(方法)并执行。

 

hasattr

class Person(object):    def talk(self):        print('skr')p = Person()print(hasattr(p, 'talk'))print(hasattr(p, 'say_hello'))# True# False

 

getattr

class Person(object):    def talk(self):        print('skr')p = Person()func = getattr(p, 'talk')print(func)func()# 
># skr

 

setattr

def say_hello(self):    print('hello!')class Person(object):    def talk(self):        print('skr')p = Person()setattr(p, 'say_hello', say_hello)p.say_hello(p) # hello!

 

delattr

class Person(object):    def talk(self):        print('skr')p = Person()delattr(p, 'talk')p.talk()Traceback (most recent call last):  File "oop.py", line 8, in 
delattr(p, 'talk')AttributeError: 'Person' object attribute 'talk' is read-only p = Person() setattr(p, 'hehe', 111) p.hehe delattr(p, 'hehe') p.hehe Traceback (most recent call last):   File "oop.py", line 12, in
    p.hehe AttributeError: 'Person' object has no attribute 'hehe'

 

转载于:https://www.cnblogs.com/allenzhang-920/p/9503167.html

你可能感兴趣的文章
vue - 生命周期
查看>>
Python正则表达式
查看>>
Linux进程间通信--命名管道
查看>>
UVa 10970 - Big Chocolate
查看>>
js输出
查看>>
set,env,export,set -x,set -e;
查看>>
H5多文本换行
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>