python中函数的括号使用
一直以來對(duì)python中函數(shù)括號(hào)的使用,有點(diǎn)分不清楚,到底什么時(shí)候用括號(hào),什么時(shí)候不用括號(hào),造成了很大看困惑。
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和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("~~~~~~~~分割線~~~~~~~~~")執(zhí)行結(jié)果:
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根據(jù)結(jié)果來分析:
1、 x = aaa aaa是一個(gè)類名,后面沒加括號(hào),打印結(jié)果 ,表明x是個(gè)類
2、 由于沒有加括號(hào),類沒有實(shí)例化,y為公有屬性,因此x.y打印的結(jié)果為you
3、foo為aaa類中的函數(shù),稱為方法或?qū)傩?#xff0c;同時(shí) foo后面也未加括號(hào),打印結(jié)果為foo在內(nèi)存中的地址
注意,此時(shí) print(x.foo())或者 print(x.foo(‘a(chǎn)a’)) 都會(huì)報(bào)錯(cuò),
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'由此可見,根據(jù)提示,foo后面應(yīng)該帶兩個(gè)參數(shù),這里為啥要帶兩個(gè)參數(shù)呢。因?yàn)閤沒有初始化,x沒有作為參數(shù)傳到foo函數(shù)里
所以
print(x.foo(x,'cc')) print(x.foo(aaa,'cc'))得到結(jié)果 cc cc可以看出,這里self指的是類本身
4、 x = aaa() 類aaa后面帶括號(hào),打印結(jié)果 aaa 類內(nèi)存中的地址
5、由于x = aaa() 表示aaa被實(shí)例化,因此會(huì)調(diào)用構(gòu)造方法中的y,打印結(jié)果是self.y的值
6、表示foo是類中的方法,foo沒有帶括號(hào),不執(zhí)行函數(shù)。
7和8 ,foo帶括號(hào),執(zhí)行foo函數(shù)。此處 foo里只帶一個(gè)參數(shù)“u” 或者"cc" ,并沒有和上面提到的帶兩個(gè)參數(shù),因?yàn)閍aa實(shí)例化了
因此得出結(jié)論。
類帶括號(hào),類實(shí)例化,
函數(shù)帶括號(hào),執(zhí)行函數(shù),返回函數(shù)的結(jié)果
否則不執(zhí)行,只是調(diào)用類或函數(shù)本身。
總結(jié)
以上是生活随笔為你收集整理的python中函数的括号使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习-之汉诺塔实现
- 下一篇: pandas - 案例(股票分析)