python中 s是什么意思_python – “S”在同情中意味着什么
有一點混亂,因為S實際上是兩件事.
首先是SingletonRegistry. SymPy中的幾個類經(jīng)常出現(xiàn),它們是單例化的,也就是說,使用一些元編程,它們只能被實例化一次.例如,每次創(chuàng)建Integer(0)時,這將返回相同的實例Zero.所有單例實例都是S對象的屬性,因此Integer(0)也可以作為S.Zero訪問.
單一化有兩個優(yōu)點:它可以節(jié)省內存,并且可以進行快速比較.它節(jié)省了內存,因為無論單例化對象在內存中的表達式中出現(xiàn)多少次,它們都指向內存中的相同單個實例.快速比較來自于您可以使用的是比較Python中的精確實例(通常,您需要使用==來比較事物).因此,您可以測試一個是S.Zero來檢查a是否是Integer(0)實例.
在大多數(shù)情況下,某些對象是單例化的這一事實是一個您不必擔心的實現(xiàn)細節(jié). S對最終用戶的主要優(yōu)點是可以方便地訪問難以輸入的某些實例,如S.Half(而不是Rational(1,2))或S.true(旁注:S.true是SymPy版本的True.與True不同,它不是int的子類,所以你可以寫像~S.true(不是真的)這樣的東西,它會給出S.false(與?的對比,它給出-2,這是’t false作為布爾值).
第二件事是同情的捷徑. sympify是將Python對象(如int(1))轉換為SymPy對象(如Integer(1))的函數(shù).它還將表達式的字符串形式轉換為SymPy表達式,如sympify(x ** 2) – >符號( “X”)** 2. S(1)與sympify(1)相同(基本上,S .__ call__已被定義為呼叫同意).
這是為了方便,因為S是單個字母.它主要用于定義有理數(shù).考慮像x 1/2這樣的表達式.如果你直接在Python中輸入它,它將評估1/2并給出0.5(或者在Python 2中僅為0,因為整數(shù)除法),因為兩個參數(shù)都是整數(shù).但是,在SymPy中,通常需要兩個整數(shù)的商來給出一個精確的有理數(shù). Python的評估工作方式,操作符的至少一方需要成為SymPy評估接管的SymPy對象.你可以把它寫成x Rational(1,2),但是這更多的是打字.較短的版本是x S(1)/ 2.由于S(1)返回Integer(1),因此除法將返回一個Rational類型,因為它將調用Integer .__ div __,它知道如何返回Rational.
總結
以上是生活随笔為你收集整理的python中 s是什么意思_python – “S”在同情中意味着什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux命令速查手册_干货| 有了这个
- 下一篇: javascript createele