表达式,语句
在py2中,如下代碼是錯的
1 a = print "hh"而在py3中,代碼確是正確的
a = print ("hh")#a =None為什么會出現這種情況?
在py2中,print是語句(statement),而在py3中,print是函數。
?
等號兩邊的,可以是表達式,可以是函數,表達式有value,函數有返回值。但等號兩邊不可以為語句。語法錯誤。以下為相同的語法錯誤:
a = (b=3)
?b=3是賦值語句,在py中,這個語句不像c語言那樣有值。
?
語句還有一個特點是:語句不是對象,他沒有內存地址(對象的一個特點是他都有內存地址)。比如函數最好一句return ,后面需要跟一個對象,所以這個對象可以是一個數字,也可以是一個函數名稱(函數對象),但不可以是語句(比如return a=1),因為他不是一個對象?
所以換一個角度講,等號兩邊都必須是對象,表達式的值是對象,函數的返回值也是對象。但不能是語句。因為他不是對象,他也沒返回值?
?
語句有哪些?print return if def try等等都是語句
a>2是表達式,而a=2確是語句
?
?
返回值
1 def a(): 2 return 1 3 def b(): 4 a() 5 def c(): 6 a() 7 return 2 8 aa = a() 9 bb = b() 10 cc = c() 11 #以上,a是1,b是None,c是2?
轉載于:https://www.cnblogs.com/saolv/p/8436636.html
總結
- 上一篇: 把List对象或者单值对象转换为Json
- 下一篇: keepalive 原理讲解