為什麼我總是感覺python的語法很挫了,有人有同感嗎?

比如 this改成self,還必須是成員函數第一個參數傳進來。

------------

感謝大家拍磚,突然感覺這個問題不恰當,python的很多精妙特性要好好學學。


嚴重支持題主,不應該用self,應該用we!因為:

我們的決定權,也是很重要的!


你不妨說個你覺得語法優雅的語言。

我們看下相比之下Python挫在什麼地方。

------------------------------------------------------

別說PHP,老黑PHP也沒意思。

也別說Javascript,Js已經被黑的夠慘了。


這個問題就像語言學中每種語言的特色一樣,在人類社會每種語言的產生都有一種背景一種文化,同樣計算機語言的誕生,同樣代表著一種思維一種語境,總不能你說美式英語比英語怎麼怎麼,粵語比國語怎麼怎麼吧,語言的本質是交流,計算機語言的本質是生產,而不是上升到地域攻擊和學術攻擊的領域


我覺得更多的是先入為主吧,我是先學python才學別的,完全不覺得有什麼問題。this和self的區別大嗎?不就是「一」和「1」的區別而已。

python的語法一點也不挫,當你碼python覺得很挫很可能你在以其他編碼語言的風格來寫python,並不pythonic(看過挺多新手寫python用一堆i,j,k來做下標的,看了就暈),python的縮進風格很好,有各種容器可以拎起就用,寫個列表生成式或生成器只需要一行代碼,有匿名函數和高階函數,裝飾器,上下文管理器...

不要問python的語法有多挫,反要問下自己知道多少pythonic的語法。


用this也可以啊,有一天你牛逼了,說不定大家都跟著你改用this了,當然這件事情還得問問龜叔。還有啊,Explicit is better than implicit。多敲四個鍵而已嘛,也不想想其他地方讓你省寫了多少行代碼。


幫你頂一下問題。

為什麼我覺得語法很棒。

python語法號稱可以運行的偽代碼。 數據演算法和數據挖掘喜歡用python,就是因為python語法能用很少的代碼解決複雜問題。

self的來歷應該很老了,python是模仿lisp語法的語言,放第一個最初應該是為了可變參數和拓展參數。

當然python也有不好的地方,每個語言應該都如此吧,你覺得不好可能是沒習慣。


我就說,將來彙編一定是最流行的編程語言。


我還覺得英語挫呢,有人理我嗎


awwbwg

阿武隈八萬剛

愛萬王不萬古


空白有語義, 自動格式化基本不可用,挫.

()是tuple啊,(1)是整數啊, (1,)又是tuple啊. 挫.


沒有藝術感的語言 始終覺得 最有藝術感的語言還是C++


崖山之後無中華,彙編之後無編程……

一行一坨的高級語言都是異端,一行一句的彙編語言才是編程正統!

連語法都醜陋不堪的Python怎麼配繼承打孔編程的行為藝術?


欣賞沒有匿名的勇氣

我覺得機器語言是最優雅的 根本不用考慮語法問題


相同邏輯的javascript代碼和python代碼。 js代碼是高手寫的,python代碼是新手(鄙人)寫的。難道不感覺python代碼要優雅漂亮很多嗎?


習慣就好了, php剛接觸感覺巨丑, 現在也習慣就沒感覺了


呃,應該有一些手法能用this吧……

回去試一下再補充。

==================實驗和取匿的分割線==================

剛剛試了一下,代碼如下

class A:

def __init__(this):
this.printf()
def printf(this):
print("hehe")

a = A()

運行結果是

d:Pythonmail&>test.py
hehe

可見直接使用 this 也是可以運行的。

本質上來講,Python 中的 Class 的方法是語法糖,對象本身是作為第一個參數傳進去的。所以換做 this 也是可以的。


題主說的這個其實這也不算語法吧。

我覺得這個成員函數傳self,其實是python作用域的問題。

python作用域是和別的語言有些不一樣,我覺得有時候比較不方便。

比如

def foo():
n=1
bar():
n=2
bar()
return n

運行完了返回一個1


呵呵


題主沒匿名,表揚一下。


先寫出好的再說別人的Low,哪怕提個你認為好的建議也行的。。。


推薦閱讀:

TAG:Python | IT行業 | PythonIDE | 釣魚廣義的 |