Python中getattr函数的妙用
简介今天看项目代码,突然发现python里一个有趣的函数getattr,这个函数真的很有意思,怎么有意思呢,举个栗子,我这有个类```pythonclass A(object):def print_name(self,name):print namedef print_age(self,age):print age```然后我想实现这样的功能,根据用户的一个输入,去调用不同的方法,通常咱们可以这样
·
简介
今天看项目代码,突然发现python里一个有趣的函数getattr,这个函数真的很有意思,怎么有意思呢,举个栗子,我这有个类
class A(object):
def print_name(self,name):
print name
def print_age(self,age):
print age
然后我想实现这样的功能,根据用户的一个输入,去调用不同的方法,通常咱们可以这样做,if条件判断,对吧,比如用户输入'print_name',那我们就调print_name方法,输print_age就调print_age方法,但是这样未免太不灵活了,我们期望是根据用户的输入,直接定位到那个方法,此时duang~duang~duang~,getattr闪亮登场,有了getattr以后呢,就可以这样写
#用户输入
fun_name = 'print_name'
a = A()
fun = getattr(a,fun_name)
fun('xxx')
神不神奇?
当然,除了可以获取一个对象实例的方法外,还可以获取一个模块(文件)里的变量或者函数。
应用场景
当我们需要写个带参数的命令行程序时用getattr就可以很方便的处理用户的输入了,不用一大堆if条件了
更多推荐
所有评论(0)