![](https://img.haomeiwen.com/i14361930/d66b1cd952c7c0e7.jpg)
首先要把自己比较模糊的问题搞清楚,比如实例化类和对象后,通过内部调用可以运行外部全局变量的函数吗,我们试一试先来试试:
class Project: #新建一个对象
def __init__(self):
pass
def function(self): #函数内部调用一个外部全局变量func()
print(func())
return 0
def func():
print("my name is gaogao")
return 1
A = Project() #实例化对象
print(A.function())
结果运行:
my name is gaogao
1
0
耶?居然可以,那我之前的代码就写了几句废话了。
一个大胆的猜想,如果我在函数里面传入一个外部参数func函数,我是不是就可以在不修改原代码的情况下,追加一个新的功能?
class Project:
def __init__(self):
pass
def function(self,func1):
func1()
print("do something")
return 1
def func():
print("my name is gaogao")
A = Project()
print(A.function(func))
运行结果
my name is gaogao
do something
1
这相当于 func = func1 传了进去,那么函数在内部调用的时候,就会一并运行上外部的func(),如果我在外部函数又双叒引用一个外部函数,是不是可以无限追加了啊?咦不对,这个东西,看着怎么有点熟悉啊???
![](https://img.haomeiwen.com/i14361930/9b4798e4eaf86adb.jpg)
大概像7,80年代的装饰器?以前听装饰器听得糊里糊涂,现在有点懂又好像不懂了
啊~好想快点写出一些大家都看不懂的代码啊啊啊
网友评论