pytho的使用和分發(fā)完全是免費(fèi)的,它是一種面向?qū)ο蟮恼Z(yǔ)言,它的。它的類模塊支持多態(tài),操作符重載和多重繼承等高級(jí)概念,并且以python特有的簡(jiǎn)潔的語(yǔ)法和類型,OOP十分易于使用。python內(nèi)置了眾多預(yù)編譯并可移植的功能模塊,這些功能模塊叫做標(biāo)準(zhǔn)庫(kù)(standard library)。python可以調(diào)用C和C++的庫(kù),可以被C和C++的程序調(diào)用,可以與java組件集成,可以和COM和.Net等框架進(jìn)行通信,并且可以通過(guò)SOAP、XML-RPC和CORBA等接口與網(wǎng)絡(luò)進(jìn)行交互,所以,python絕不僅僅是一個(gè)獨(dú)立的工具。
本來(lái)是想打算使用eval函數(shù)對(duì)變量進(jìn)行賦值的,沒(méi)想到出現(xiàn)了invalid syntax錯(cuò)誤。源代碼如下
In [2]: eval('a = 1') File "", line 1 a = 1 ^ SyntaxError: invalid syntax
百度沒(méi)百度到結(jié)果,最后在stackoverflow上找到了好的答案.
作者的意思是,eval函數(shù)只負(fù)責(zé)對(duì)表達(dá)式進(jìn)行處理,并沒(méi)有賦值的功能,也就是說(shuō),eval函數(shù)只負(fù)責(zé)對(duì)你的輸入進(jìn)行輸出,True還是False又或者是什么東西。但它本身是沒(méi)有影響當(dāng)前代碼環(huán)境的能力的。如果我們想用來(lái)進(jìn)行賦值,那么應(yīng)該使用exec()函數(shù)。看代碼:
In [3]: exec('a = 1') In [4]: a Out[4]: 1
問(wèn)題的解決方案已經(jīng)供出了,那么我們現(xiàn)在再看看官方文檔對(duì)這兩個(gè)函數(shù)怎么說(shuō)。
eval(expression, global=None, local=None)
????? 參數(shù)是字符串和可選的global和local。global應(yīng)當(dāng)為一個(gè)字典文件,local應(yīng)為一個(gè)映射對(duì)象。
expression參數(shù)將被處理為一個(gè)python的表達(dá)式(嚴(yán)格來(lái)說(shuō),是一串條件語(yǔ)句),global和local參數(shù)將被用來(lái)當(dāng)做全局和局部的命名空間。
exec(object[,global,[locals])
這個(gè)函數(shù)能夠?yàn)閜ython提供動(dòng)態(tài)的代碼執(zhí)行功能。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
