![](/img/trans.png)
[英]How to get string representation of PrimaryKeyRelatedField in JSON
[英]How to get a string representation of a builtin function?
在Python中獲取內置函數的字符串版本的最佳方法是什么?
即
>>> import operator
>>> gt = operator.gt
>>> gt
<function _operator.gt>
>>> str(gt)
'<built-in function gt>'
從gt
返回>
的最佳方法是什么? (注意:對於這些運算符,我實際上只需要它: >
, <
, >=
, <=
, ==
和!=
)。
您可以訪問內置函數的doc屬性,該屬性包含描述該函數的有用注釋。
>>> operator.lt.__doc__
'lt(a, b) -- Same as a<b.'
>>> operator.gt.__doc__
'gt(a, b) -- Same as a>b.'
>>> operator.eq.__doc__
'eq(a, b) -- Same as a==b.'
>>> operator.ne.__doc__
'ne(a, b) -- Same as a!=b.'
在@Milton給出的答案的基礎上,我們可以做:
import re, operator
def get_symbol(op):
sym = re.sub(r'.*\w\s?(\S+)\s?\w.*','\\1',getattr(operator,op).__doc__)
if re.match('^\\W+$',sym):return sym
例子:
get_symbol('matmul')
'@'
get_symbol('add')
'+'
get_symbol('eq')
'=='
get_symbol('le')
'<='
get_symbol('mod')
'%'
get_symbol('inv')
'~'
get_symbol('ne')
'!='
僅舉幾例。 您也可以這樣做:
{get_symbol(i):i for i in operator.__all__}
這為您提供了帶有符號的字典。 您將看到像abs
這樣的東西給出了錯誤的提示,因為沒有實現符號版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.