python 可呼叫物件

2021-09-08 03:20:34 字數 851 閱讀 9596

compile函式允許程式設計師在執行時刻迅速生成**物件,然後就可以用exec語句或者內建函式eval 來執行這些物件或者對它們進行求值。乙個很重要的觀點是:exec和eval者可以執行字串格式的python**。

這也是與c++等靜態語言最重要的區別。

compile的三個引數都是必須的,第一引數代表了要編譯的python**。第二個字串,雖然是必須的,但通常被置為空串。最後的引數是個字串,它用來表明**物件的型別。有三種可能值:

『eval』 可求值的表示式,和eval一起使用

『single』 單一可執行語句,和exec一起使用

『exec』 可執行語句組,和exec一起使用。

1、可求值表示式

eval_code = compile('100 + 200', '', 'eval')

print eval(eval_code)

2、單一可執行語句:

single_code = compile('print "hello world!"', '', 'single')

exec single_code

hello world!

3、可執行語句組:

exec_code = compile("""

req = input('count how many numbers? ')

for eachnum in range(req):

print eachnum

""", '', 'exec')

exec exec_code

count how many numbers? 0

1 2

3 4

5

python 可呼叫物件

compile函式允許程式設計師在執行時刻迅速生成 物件,然後就可以用exec語句或者內建函式eval 來執行這些物件或者對它們進行求值。乙個很重要的觀點是 exec和eval者可以執行字串格式的python 這也是與c 等靜態語言最重要的區別。compile的三個引數都是必須的,第一引數代表了要編...

python的可呼叫物件

這篇文章 定義 call 使乙個類成為可呼叫,相當於過載了 class g dpm object def init self,g self.g g def call self,t return self.g t 2 2 甚至可以這樣使用 print g dpm 9.8 2 g dpm 9.8 相當於...

python的可呼叫物件

這篇文章 定義 call 使乙個類成為可呼叫,相當於過載了 class g dpm object def init self,g self.g g def call self,t return self.g t 2 2 甚至可以這樣使用 print g dpm 9.8 2 g dpm 9.8 相當於...