Python 到底是 pass by value 還是 pass by reference? 一次搞懂程式語言的函式傳參!

近日在思考 C++ 的指標問題時,意外翻到去年我在 SegmentFault 上給網友的一篇回答, 裡面詳細地討論了關於函數傳參的問題,覺得應該有不少參考價值,看完應該能夠對各種函數傳參方式有一點領悟, 故整理於此,希望能對大家有所幫助。 原本的問題 該網友有一段程式碼如下: class Count: def __init__(self, count=0): self.count = count def increment(c, times): c.count += 1 print('c:', c.count) times += 1 print('t:', times) def main(): c = Count() times = 0 for i in range(100 ...

Read More...


小小步邁向 Pythonic (1) - 利用長字串分割以製造字串清單

我這個人一直有點完美主義,導致拖延症成為萬年宿疾,雖然對於寫作和教學有著極強烈的慾望,但是老是為了我沒辦法把事情說得很完整、很完美而苦腦,我決定要克服這些問題,最好的方式就是讓自己不要想那麼多,開始寫就對了,那究竟要寫些什麼呢?為了防止大主題成為持續的絆腳石,我決定開始這個 小小步邁向 Pythonic 的系列。 目前的打算是,讓這個系列收錄我這些年領悟到的一些 Pythonic 技巧,這些技巧彼此之間都會非常獨立,也非常零碎,同時也會非常單純,這種零散的狀態可以讓我比較沒有顧慮地隨意揮灑,算是讓自己養成持續寫作的習慣,不過大家可能也要忍受一下這個系列的無序和過度自由,同時,每篇文章的長短、深度和廣度可能都會不同,甚至差異很大。 這些文章中可能包含了很多我個人的看法,你可能有很多的不認同,這是正常現象!許多時候我們對於 code 的美感和認知並不相同,當然也可能是目前我的見識不夠,所以請大家一定要保持獨立思考的精神,去選擇你覺得有幫助的作法來邁向 Pythonic!當然也歡迎大家留言告訴我更好的作法。 總之,讓我們一起前進吧。 製造一個 字串清單 是一件累人的事情,尤其是在字串數量龐大的時候,因為我們必須得鍵入大量的引號和逗號。 下面的 names 就是一個不短的人名清單(list ...

Read More...


Don't Reinvent Sandwich 2: Context Manager

今年的 Pycon Taiwan,有一篇我滿感興趣的演講:Don't Reinvent Sandwich - Python Decorator and Context Manager,講者是蕭聖穎先生。 該演講的 投影片 和講者的 Facebook。 由於我對於語言本身的設計和使用慣例非常感興趣,所以就去朝聖了一下。講題的主旨大略是:我們通常透過抽取一段重複出現的 連續代碼 成為 函數 (function) 或 類別 (class) 來重複利用他,避免重複發明輪子。但有的時候想要抽取的部分並非 中間 ( 三明治的餡)連續的部分,而是 頭尾 (三明治的麵包),這個時候我們便需要使用一些其他的手法或機制來達到 reuse 的目的了。Python 正好非常友善地提供了 裝飾器 (decorator) 和 環境管理器 (context manager),可以很容易地達成我們的目的 ...

Read More...


Don't Reinvent Sandwich: Decorator

今年的 Pycon Taiwan,有一篇我滿感興趣的演講:Don't Reinvent Sandwich - Python Decorator and Context Manager,講者是蕭聖穎先生。 該演講的 投影片 和講者的 Facebook。 由於我對於語言本身的設計和使用慣例非常感興趣,所以就去朝聖了一下。講題的主旨大略是:我們通常透過抽取一段重複出現的 連續代碼 成為 函數 (function) 或 類別 (class) 來重複利用他,避免重複發明輪子。但有的時候想要抽取的部分並非 中間 ( 三明治的餡)連續的部分,而是 頭尾 (三明治的麵包),這個時候我們便需要使用一些其他的手法或機制來達到 reuse 的目的了。Python 正好非常友善地提供了 裝飾器 (decorator) 和 環境管理器 (context manager),可以很容易地達成我們的目的 ...

Read More...


カウンター
About Me

dokelung

dokelung

Hi, my name is Ko-Lung Yuan!

你好,我是袁克倫,你可以叫我 dokelung,我是一名小小軟體工程師,專長是電子設計自動化。 愛學習也愛分享,寫書來推廣熱愛的知識一直是我的夢想。 本應與 C++ 共度一生,卻意外成為 Python 的終極狂熱者,幾乎生活上的大小事都想用 Python 解決(可惜吃飯和上廁所不行),酷愛有關於 Python 的一切。

More About Me...


Contacts

book

It's django

It's django

A book about python web framework Django

Where to buy it?

book

Python 快速入門

Python 快速入門

適合初學者的 Python 快速入門

Read it!