91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python高級進階之 無參數,有參數, 可變參數的裝飾器的應用

發布時間:2020-07-05 20:48:31 來源:網絡 閱讀:335 作者:nineteens 欄目:編程語言

  請看下 無參數的裝飾器

  如下:

  def test(func):

  print("test")

  def test_in():

  print("testing")

  return "test "+func()+" test"

  return test_in

  def test01(func):

  print("test01")

  def test_in():

  print("testing_01")

  return "test01 "+func()+" test01"

  return test_in

  @test

  @test01

  def f1():

  print("---f1----")

  return "hello_word"

  print(f1())

  請看有兩個參數的

  def test(func):

  print("test")

  def test_in():

  print("testing")

  return "test "+func()+" test"

  return test_in

  @test

  def f1(a,b):

  print("---f1----")

  return "hello_word"

  print(f1(2,3)) # 傳入兩個參數

  拋錯如下:

  File "D:/works/Unittest/test.py", line 14, in

  print(f1(2,3))

  TypeError: test_in() takes 0 positional arguments but 2 were given

  理解下 為什么會拋錯

  @ test 意思就是 f1=test(f1) , f1 指向是 test_in 函數體

  在執行 f1(2,3) 的時候 要執行 test_in 函數體, 但是test_in 沒有地方接受參數, 所以要報錯

  下邊我們添加上 繼續執行看看結果如何:

  def test(func):

  print("test")

  def test_in(a,b):

  print("testing")

  return "test "+func()+" test"

  return test_in

  @test

  def f1(a,b):

  print("---f1----")

  return "hello_word"

  print(f1(2,3))

  報錯如下:

  File "D:/works/Unittest/test.py", line 14, in

  print(f1(2,3))

  File "D:/works/Unittest/test.py", line 5, in test_in

  return "test "+func()+" test"

  TypeError: f1() missing 2 required positional arguments: 'a' and 'b'

  解釋如下:無錫婦科醫院排名 http://www.csfk0731.com/

  在執行test_in 函數體的時候, 發現有個 func(), 它的指向 就是 f1(a,b) , 它是需要兩個參數的, 但是找不到,就會報錯

  改下 再執行就不會報錯了

  def test(func):

  print("test")

  def test_in(a,b):

  print("testing")

  return "test "+func(a,b)+" test"

  return test_in

  @test

  def f1(a,b):

  print("---f1----")

  return "hello_word"

  print(f1(2,3))

  3. 可變參數

  修改如下 就可以隨便傳遞參數。

  def test(func):

  print("test")

  def test_in(*args,**kargs):

  print("testing")

  return "test "+str(func(*args,**kargs))+" test"

  return test_in

  @test

  def f1(a,b):

  print("---f1----")

  return a+b

  @test

  def f2(a,b,c,d):

  return(a+b+c+d)

  print(f1(5,9))

  print(f2(1,3,4,5))


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库尔勒市| 沾益县| 临朐县| 凯里市| 沙雅县| 三台县| 乐亭县| 荥经县| 宝坻区| 大荔县| 航空| 沙湾县| 武乡县| 太和县| 秦皇岛市| 泰顺县| 车致| 镇巴县| 新乡市| 唐河县| 靖边县| 广饶县| 保定市| 马关县| 双鸭山市| 连南| 连城县| 鲁甸县| 白沙| 四子王旗| 即墨市| 梓潼县| 堆龙德庆县| 太原市| 高邮市| 卢氏县| 长垣县| 平度市| 马鞍山市| 闸北区| 抚松县|