weixin_39470821
weixin_39470821
采纳率40%
2020-11-29 14:35

不定长参数 斜杠错了么?没有啊!

已采纳

def order_update(ticker, /, price, volume):
    print("%s成交价%s成交量%s" % (ticker,price, volume))
    
order_update(ticker = "中国平安", 36.5, 10000)

File "<ipython-input-33-781c843c0c5e>", line 1
    def order_update(ticker, /, price, volume):
                             ^
SyntaxError: invalid syntax
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • luanpeng825485697 腾讯数据架构师 4月前

    以上这段代码,两种改法吧:

    1. 固定长参数:

    def order_update(ticker, price, volume):
        print("%s成交价%s成交量%s" % (ticker, price, volume))
    
    
    order_update("中国平安", 36.5, 10000)

    斜杠没有意义,去掉即可。

    2. 可变长参数:

    def order_update(*args,**kwargs):
        print("%s成交价%s成交量%s" % (kwargs['ticker'], args[0], args[1]))
    
    
    order_update(36.5, 10000,ticker = "中国平安")

    ticker是根据关键字搜索的关键字参数,定义函数时关键字参数必须跟在位置参数之后,因此想把成交价和成交量定义为可变长度的位置参数,即*args,必须放在关键字参数**kwargs前面,因此顺序要换一下。

     

    两种修改方案结果如下:

    点赞 1 评论 复制链接分享