當前位置:成語大全網 - 書法字典 - python cmd模塊的問題

python cmd模塊的問題

def f1():

打印“f1”

定義f2():

打印“f2”

profile.runctx("f2()"、globals()、locals())

& gt& gt& gtf1()

f1

第二子代

0.000 CPU秒內4次函數調用

排序依據:標準名稱

n調用總時間百分比調用累計時間百分比調用文件名:行號(函數)

1 0.000 0.000 0.000 0.000:0(set profile)

1 0.000 0.000 0.000 0.000 & lt;stdin & gt:3(f2)

1 0.000 0.000 0.000 0.000 & lt;字符串& gt:1(?)

1 0.000 0.000 0.000 0.000配置文件:0(f2())

0 0.000 0.000配置文件:0(探查器)

看壹下profile.py的源代碼

類別剖面法

定義運行(self,cmd):

導入__main__

dict = __main__。__詞典_ _

return self.runctx(cmd,dict,dict)

def runctx(self,cmd,globals,locals):

self.set_cmd(cmd)

sys.setprofile(self.dispatcher)

嘗試:

全局、局部中的執行命令

最後:

sys.setprofile(無)

回歸自我

可以看到,在run方法中,只有__main__的上下文,也就是說,妳只能知道全局上下文中定義的變量,而妳使用嵌套函數後,f2只是函數f1的局部變量,在__main__的環境中沒有f2,所以存在執行錯誤。

在使用profile.runctx ("F2()"、globals()、locales())時,將f1的全局變量和區域設置賦予runctx,使其能夠正確執行。