函数字符串的百分比和/或格式[重复]

Posted

技术标签:

【中文标题】函数字符串的百分比和/或格式[重复]【英文标题】:% and/or format for function string [duplicate] 【发布时间】:2016-07-16 08:12:34 【问题描述】:

我正在使用格式来测试 Python 中的函数。我想要一个函数的输出

def test(f,k):
    print "0(1)=2".format(f,k,f(k))

给定

test(Sqrt,4)

成为

Sqrt(4)=2

但是格式会返回类型“函数”和尖括号内的内存地址。有没有一种巧妙的方法来缩短输出以获得我想要的东西?

【问题讨论】:

【参考方案1】:

您希望使用__name__:

def test(f,k):
    print("0(1)=2".format(f.__name__,k,f(k)))

test(sqrt, 2)

输出:

sqrt(2)=1.4142135623730951

从数据模型文档here 的“可调用类型”部分,__name__ 很简单:

__name__ func_name : The function’s name.

仔细阅读文档以了解当您想要使用这些类型的属性时可以使用什么。通常,这将可用于 callable 类型(例如,在定义方法或类时,__name__ 属性将可供您使用)。但如果你只是定义一个不可调用的,类似:

x = 5

并尝试拨打x.__name__,您将收到AttributeError

【讨论】:

【参考方案2】:

与 Python 中的大多数对象不同,函数的 __name__ 属性设置为定义它们的名称。你可以使用它:

print "0(1)=2".format(f.__name__, k, f(k))

类也有__name__,但大多数其他可调用对象没有。如果f 是其他类型的可调用对象,则您必须以不同的方式处理它,具体方式取决于它是什么类型的可调用对象以及您是否控制其实现。

【讨论】:

以上是关于函数字符串的百分比和/或格式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript数学函数:如何用千分位逗号格式化答案[重复]

在 ggplot2 中,如何将图例文本更改为百分比格式 [重复]

是否可以使用 java DecimalFormat 格式化负百分比?

选择要根据百分比运行的函数[重复]

将范围数压缩两个最大百分比和最小百分比[重复]

pandas使用pct_change计算数据列的百分比变化环比变化率:计算当前元素和前一个元素之间的百分比变化使用style函数指定format的格式:百分比缺失值替换用颜色标注极大值和极小值