日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中函数的括号使用

發布時間:2025/3/20 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中函数的括号使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一直以來對python中函數括號的使用,有點分不清楚,到底什么時候用括號,什么時候不用括號,造成了很大看困惑。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''1 class aaa():2 y = 'you'3 def __init__(self):4 self.y = 'me'5 def foo(self,aa):6 self.name = aa7 return (aa)8 9 x = aaa 10 print("1---->",x) 11 print("2---->",x.y) 12 print("3---->",x.foo) 13 # print("========分割線=========") 14 15 x = aaa() 16 print("4---->",x) 17 print("5---->",x.y) 18 # print("--------分割線---------") 19 20 print("6---->",x.foo) 21 print("7---->",x.foo('u')) 22 print("8---->",x.foo('cc')) 23 # print("~~~~~~~~分割線~~~~~~~~~")

執行結果:

1----> <class '__main__.aaa'> 2----> you 3----> <function aaa.foo at 0x000001F6592626A8> 4----> <__main__.aaa object at 0x000001F659296B70> 5----> me 6----> <bound method aaa.foo of <__main__.aaa object at 0x000001F659296B70>> 7----> u 8----> cc

根據結果來分析:

1、 x = aaa aaa是一個類名,后面沒加括號,打印結果 ,表明x是個類

2、 由于沒有加括號,類沒有實例化,y為公有屬性,因此x.y打印的結果為you

3、foo為aaa類中的函數,稱為方法或屬性,同時 foo后面也未加括號,打印結果為foo在內存中的地址

注意,此時 print(x.foo())或者 print(x.foo(‘aa’)) 都會報錯,

print(x.foo()) TypeError: foo() missing 2 required positional arguments: 'self' and 'aa'print(x.foo('aa')) TypeError: foo() missing 1 required positional argument: 'aa'

由此可見,根據提示,foo后面應該帶兩個參數,這里為啥要帶兩個參數呢。因為x沒有初始化,x沒有作為參數傳到foo函數里

所以

print(x.foo(x,'cc')) print(x.foo(aaa,'cc'))得到結果 cc cc

可以看出,這里self指的是類本身

4、 x = aaa() 類aaa后面帶括號,打印結果 aaa 類內存中的地址

5、由于x = aaa() 表示aaa被實例化,因此會調用構造方法中的y,打印結果是self.y的值

6、表示foo是類中的方法,foo沒有帶括號,不執行函數。

7和8 ,foo帶括號,執行foo函數。此處 foo里只帶一個參數“u” 或者"cc" ,并沒有和上面提到的帶兩個參數,因為aaa實例化了

因此得出結論。

類帶括號,類實例化,

函數帶括號,執行函數,返回函數的結果

否則不執行,只是調用類或函數本身。

總結

以上是生活随笔為你收集整理的python中函数的括号使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。