取到类下面的方法的3种方式


class foo():

sta='ass'
def fun1(self):
print(self)
print('fun1')
list_display=[fun1,sta]

当是实例方法去调用的时候,可以不传self进去,少传一个参数(注意区分函数和方法)



第一种方式:
# name=foo.fun1.__name__#拿到这个下面方法的名字(字符串形式)
# a=getattr(foo,name)#对象形式(方法)
# print(type(a))

# a('yunxin')#实例化

'''
<class 'function'>
yunxin

'''



第二种方法:
# a=foo.fun1
# print(type(a))

'''
<class 'function'>
yunxin

'''


第三种方法:
for  i  in foo.list_display:
print(type(i))
if callable(i):#判断是函数还是字符串(或者是其他的格式),是函数的话,就执行下面的操作
i('me')
else:
print(i)

'''
[1, 456, 5, [1, 3]]
<class 'function'>
me
fun1
<class 'str'>
ass

'''
 
posted @ 2018-10-22 02:11  风不再来  阅读(307)  评论(0编辑  收藏  举报