python 動態特性學習

2021-07-04 19:30:07 字數 1278 閱讀 7110

python是一門動態語言,可以動態的建立類。

這裡主要學習exce,eval,execfile,complie.

exce----是跟while,for一樣的python語句

eval,excefile,complie 是python的內建函式

1、exce 可以執行儲存在字串中的python**

>>> exec 'print "hello world"'

hello world

2、eval可以執行儲存在字串中的python表示式

>>>eval '1+2'

>>>3

3、execfile(filename [,globals [,locals ]])函式可以用來執行乙個檔案,看下面的例子:

>>> execfile(r'c:/test.py')

hello world!

>>>

預設的,eval_r(),exec,execfile()所執行的**都位於當前的名字空間中. eval_r(), exec 和 execfile()函式也可以接受乙個或兩個可選字典引數作為**執行的全域性名字空間和區域性名字空間. 例如:

globals

=

locals

=

# 將上邊的字典作為全域性和區域性命名空間

8 a=

eval

("3*x + 4*y"

,globals

,locals

)

exec

"for b in birds: print b"

inglobals

,locals

# 注意這裡的語法

10 

execfile

("foo.py"

,globals

,locals

)

4、compile(str ,filename ,kind )函式將乙個字串編譯為位元組**,

str是將要被編譯的字串, 

filename是定義該字串變數的檔案,

kind引數指定了**被編譯的型別-- 'single'指單個語句, 'exec'指多個語句, 'eval'指乙個表示式. 

cmpile()函式返回乙個**物件,該物件當然也可以被傳遞給eval()函式和exec語句來執行

python動態語言特性小結

python 動態語言特性 a.動態模組呼叫 如果模組是動態的,如從某個配置檔案中讀取.那麼關於模組的字串如何轉換為 的import呢,下面 很好解釋了這一點 例子11 sys import sys 2 os import os 3 re import re 4 print sys.path 例子2...

python學習 高階特性

高階函式 可以使用函式作為引數的函式 def f func sorted 對列表排序,有乙個名為key的引數 指定key為abs,根據l的絕對值排序sorted l,key abs filter 對序列過濾 filter a,b a為函式,b為被處理的資料列表,a會對b中的每個元素判斷,結果為真擇保...

C 動態特性

在絕大多數情況下,程式的功能是在編譯的時候就確定下來的,我們稱為靜態特性。反之,如果程式的功能是在執行時刻才確定下來的,則稱為動態特性。動態特性是物件導向語言最強大的功能之一,因為它在語言層面上支援程式的可擴充套件性,而可擴充套件性是軟體設計追求的重要目標之一。c 虛函式 抽象基類 動態繫結 多型構...