本文目錄一覽:
python中××表示什麼意思
這是python的語法糖,叫做decorator,相當於decorator模式的語言實現。
前後順序有關係:
prependUnite是@coverMoney + money的decorator
converMoney是money的decorator
python print(‘=’ * 30)是啥意思?
題主你好,
其實這裡面的 “*”號可以用數學裡面的” 乘號 “去理解, ” 乘號 “表示倍數嘛,所以
‘=’ * 30 表示30個’=’.
這其實也算是python里的語法糖吧,要不你想要輸出30個’=’, 要一個個的敲多麻煩,如果代碼中用到1,2個需要輸出多個相同字符的,你一個個的敲還好, 如果有幾十個,甚至上百個,那麼使用:
“字符串” * 重複次數
這種寫法就要省好多事兒了
舉例來說,
如果代碼里就讓你輸出20個a和20個b,則你手敲還可以接受:
print(‘aaaaaaaaaaaaaaaaaaaa’)
print(‘bbbbbbbbbbbbbbbbbbbb’)
但如果你的代碼里有幾十個要輸出的重複字符串, 而且重複的個數還不同,那麼:
print(‘a’ * 20)
print(‘b’ * 20)
這種寫法就要省太多事了,而且還有一個問題,就是如果重複的多了,你還要一個個的數,很多時候會出現多數一個或少數一個的情況.
寫在最後: 上面可能只是出現 ‘字符串’ * 重複次數 這種寫法的其中一個動機, 但明白了這種情況, 應該至少也就明白了它的用法了, 而且以後編碼的時候,再遇到這種需要重複輸出多個相同字符串的場景,會直接聯想到使用 “倍數” 這種寫法, 而不是一個個的字符去敲了.
希望可以幫到題主, 歡迎追問
Python 有哪些好玩的語法糖?
什麼是語法糖?
很多人在Python語法糖相關的問題,但是估計其中有不少同學甚至都不知道語法糖是什麼概念。
其實,它並沒有那麼高大上,如果你跟着正常的學習鏈路把一門編程語言的語法學會,可能你日常開發過程中已經用到了很多語法糖。
在正式回答問題之前,我覺得有必要先解釋一下什麼是語法糖。
語法糖(Syntactic sugar),由英國計算機科學家Peter J. Landin於1964年提出,簡單來說,語法糖是指計算機語言中添加的某種語法,這種語法對語言的功能沒有影響,但是更方便程序員使用。語法糖讓程序更加簡潔,有更高的可讀性。
引用維基百科上的一個例子:
舉一個比較常見的for循環的例子:
滿足同樣的功能和效果,我們可以通過while來實現:
這就是一個簡單的語法糖。
由此可見,語法糖並不是什麼高大上的東西,可能我們現在開發中已經用了很多Python語法糖。
除此之外,語法糖還派生出一些詞彙。例如,語法鹽(syntactic salt),指的是不容易寫出壞代碼的語法特性。語法糖精(syntactic saccharine),或者說語法糖漿(syntactic syrup),指的是未能讓編程更加方便的附加語法。
花了很大功夫來解釋什麼是語法糖,為的就是讓大家更加容易理解、循序漸進,而不是上來就羅列一堆語法糖,很多基礎薄弱的同學不明所以。
講完語法糖的概念,接下來就介紹一些Python中那些好玩的語法糖。
魔法方法(Magic methods),有時也被稱為特殊方法,是一種具有預定義名稱的方法,其特徵是在開頭和結尾處有雙下劃線,例如, init 。
它們之所以是 “魔法”,是因為這些方法是間接調用的,你不需要直接調用它們,一切都在背後完成。
例如,當你實例化一個類 x = MyClass() 時,Python 將調用 new 和 init 進行構造或者初始化。
舉一個簡單的打印字符串的例子:
其實它間接的調用了背後的魔法方法,我們可以來試一下:
可以看出, repr 其實就是綁定到知名的print()方法上了。
除此之外,還有很多常用的魔法方法和我們常用的操作效果相同的:
裝飾器是典型的Python語法糖,通過裝飾器的使用,可以讓Python語法格外簡潔,而且可讀性也很高。
比如,我現在寫了3個函數,並且要統計3個函數的執行時間。
按常規的需要這樣寫:
這樣不僅麻煩,而且有很多冗餘代碼。
這時候,我們就可以實現一個計時的裝飾器,並且在每個函數上通過@裝飾器名來調用:
除此之外,裝飾器還有很多妙用,感興趣的同學可以看看我的另外一篇文章:
如果對裝飾器的基本概念和用法不清楚,我之前也寫過一篇非常受歡迎的回答,需要的也可以看一下:
開發過程中經常會用到比較運算符,比如,要判斷一個變量是否在一個區間內,很多語言需要這樣寫:
在Python中,可以這樣寫:
這樣更符合我們日常使用習慣,也更容易理解。
如果有一個列表或者字典,該如何遍歷?
很多同學估計都會這樣做:
在Python中,可以用更簡潔的方法實現,一行代碼就夠了:
假如有這麼一個數字:
這是多少?
估計很多人開始逐個數零了。
如果接觸過財務或者會計的同學應該知道,有一種千位數字分割樣式,這樣更便於讀取和理解。
在Python中,它提供了一種語法糖可以這樣表示
這種效果和上面這種一樣,但是更加容易理解和讀取。
可以驗證一下:
除了上面這些,Python在字符串、列表、函數等方面還有很多語法糖。
總之,語法糖的目的就是讓程序更加簡潔,有更高的可讀性。這和我們編程過程中一直堅持的思想是一直的,實現一項功能的方法有很多,但是,我們一直在努力讓代碼具有更優秀的擴展性、閱讀性、簡潔性。除了語法糖,我們也可以通過養成良好的編程習慣、學習設計模式等方式來優化我們的代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192381.html