类对象如何通过传字符串, 调用(callable)函数-------------------func = getattr(self,func_str)
再在__init__ 后写func()
getattr(self,func)本质上就=self.func
class Animal(object):
def __init__(self,name,age,funcs):
self.name = name
self.age = age
func = getattr(self,funcs)#here!!!!
func()#here!!!!!
def sleep(self):
print("困高と思います")
def eat(self):
print("食べること")
class Dog(Animal):
def sleep(self):
print("only dog style sleep")
wang = Dog("wang","14","sleep")#在这里传递想调用的函数即可!!
实例化时(初始化就调用)
自己的尝试:再创造一个单独的函数来专门传参并调用其他函数:
class Animal(object):
def __init__(self,name,age,funcs):
self.name = name
self.age = age
func = getattr(self,funcs)#here!!!!
func()#here!!!!!
def sleep(self):
print("困高と思います")
def eat(self):
print("食べること")
# 这里就是真正调用了一个传送门的案例
def call(self,funcc2):
temp = getattr(self,funcc2)
temp()
class Dog(Animal):
def sleep(self):
print("only dog style sleep")
wang = Dog("wang","14","sleep")#在这里传递想调用的函数即可!!
wang.call("eat")#使用传送门调用eat函数捏 ^_^
发现一个!!!,按住ctrl一点就能进入代码所在地!!
再按ctrl+shift+退格键就能返回刚刚的地方!! 太方便啦!
关于*arg和**kwargs:
arg=argument
有这两个好像就能存放任意的东西,应该是这个意思,建议再百度百度.
用法示例:
def main(arg,*args,**kwargs):
print(arg)
print(args)
print(kwargs)
main(123, 123, 123, 123, aa=123, bb=3321)
输出结果:
学习CBV时的疑惑:url中似乎只是调用了as_view, 并没有调用as_view下的view方法,那return写在view下是什么情况下返回的呢?也并没有看到类似__init__的东西..