Python中理解exec 用法

2021-06-04 01:05:40 字數 1168 閱讀 5467

exec語句用來執行儲存在字串或檔案中的python語句。例如,我們可以在執行時生成乙個包含python**的字串,然後使用exec語句執行這些語句。下面是乙個簡單的例子。

>>> exec 'print "hello world"'

hello world

注意例子中exec語句的用法和eval_r(), execfile()是不一樣的. exec是乙個語句(就象print或while), 而eval_r()和execfile()則是內建函式.

理解網上的乙個例子:

).decode("utf-8"))

後會輸出結果10。

解決方案:

class afunction:

def __init__(self,mystring):

exec("self."+mystring)

exec執行了儲存的字串(self.age=10);所以結果為d.age = 10

下面還要說明下__init__方法:

乙個類定義了__init__()方法以後,類例項化時就會自動為新生成的類例項呼叫呼叫__init__() 方法。所以在bag例子中,可以用如下程式生成新的初始化的例項:

x = bag()當然,__init__()方法可以有自變數,這樣可以實現更大的靈活性。在這樣的情況下,類例項化時指定的自變數被傳遞給__init__()方法。例如:

>>> class complex:...     def __init__(self, realpart, imagpart):...         self.r = realpart...         self.i = imagpart...

>>> x = complex(3.0,-4.5)

>>> x.r, x.i(3.0, -4.5)方法可以和普通函式一樣地引用全域性名字。方法的全域性作用域是包含類定義的模組。(注意類本身並不被用作全域性作用域!)雖然我們很少需要在方法中使用全域性資料,全域性作用域還是有許多合法的用途:例如,匯入全域性作用域的函式和模組可以被方法使用,在同一模組中定義的函式和方法也可以被方法使用。

摘自: python 中 exec、 eval、 execfile 和 compile 用法

如何將字串的內容作為變數名使用?【已自行解決】

python程式設計入門

注意

exec 命令的用法

shell的內建命令exec將並不啟動新的shell,而是用要被執行命令替換當前的shell程序,並且將老程序的環境清理掉,而且exec命令後的其它命令將不再執行。因此,如果你在乙個shell裡面,執行exec ls那麼,當列出了當前目錄後,這個shell就自己退出了,因為這個shell程序已被替換...

PHP中exec與system用法區別分析

一般來說,在php中呼叫外部命令,可以用exec及system來實現 system 原型 string system string command int return var system 函式很其它語言中的差不多,它執行給定的命令,輸出和返回結果。第二個引數是可選的,用來得到命令執行後的狀態碼。...

exec 和 call 用法詳解

exec 和 call 用法詳解 exec 和 call 執行乙個procedure時,declare s in varchar2 30 where col 13 v sql str varchar2 200 begin v sql str select from t1 s in execute i...