亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 3.6 inspect.signature()不顯示參數

Python 3.6 inspect.signature()不顯示參數

慕的地6264312 2021-03-29 16:13:59
我有一個功能:def report(start=1, quantity=100, days_left=7, min_app_version=None):我想獲取參數名稱和默認值,例如{'start':1, 'quantity':100, 'days_left':7, 'min_app_version':None}(或至少兩個列表)來自此功能之外當我做import inspect print(inspect.signature(report))我懂了(* args,** kwargs)為什么“ inspect.signature”看不到函數參數?解決:問題是由于裝飾器
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

比刪除裝飾器更好,您可以告訴裝飾器使函數包裝器看起來像使用檢查工具包裝的函數 functools.wraps


代替


def decorator(f):

    def wrapper(*args, **kwargs):

        print("Wrapped")

        return f(*args, **kwargs)

    return wrapper


@decorator

def report(start=1, quantity=100, days_left=7, min_app_version=None):

    pass


print(inspect.signature(report))

# (*args, **kwargs)

你可以做


from functools import wraps


def decorator(f):

    @wraps(f)

    def wrapper(*args, **kwargs):

        print("Wrapped")

        return f(*args, **kwargs)

    return wrapper


@decorator

def report(start=1, quantity=100, days_left=7, min_app_version=None):

    pass


print(inspect.signature(report))

# (start=1, quantity=100, days_left=7, min_app_version=None)


查看完整回答
反對 回復 2021-04-27
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

如果有人遇到此錯誤,只需刪除函數裝飾器即可。


@time_count

def report(start=1, quantity=100, days_left=7, min_app_version=None):


查看完整回答
反對 回復 2021-04-27
  • 2 回答
  • 0 關注
  • 417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號