使用 class 属性作为参数的 f-string 浮点格式
Float formatting with f-string using a class attribute as parameter
是否可以这样做?
class P():
def __init__(self):
self.digits = 5
self.pi = f"{np.pi:eval(self.digits)f}"
test = Test()
test.pi
我知道 f"{np.pi:5.f}"
可以,但是可以用 class 的属性来实现吗?像动态的方式?它不需要使用 eval()
,重要的部分是如果 self.digits
可以以某种方式使用。
您可以在格式说明符中嵌套格式
以你的例子为例并修复一些问题(缺少导入,不必要的 numpy
,class 名称不匹配,打印变量而不是仅仅访问它,在数字前面加点以限制小数位):
import math
class Test():
def __init__(self):
self.digits = 5
self.pi = f"{math.pi:.{self.digits}f}"
test = Test()
print(test.pi)
输出:
$ python3 t.py
3.14159
是否可以这样做?
class P():
def __init__(self):
self.digits = 5
self.pi = f"{np.pi:eval(self.digits)f}"
test = Test()
test.pi
我知道 f"{np.pi:5.f}"
可以,但是可以用 class 的属性来实现吗?像动态的方式?它不需要使用 eval()
,重要的部分是如果 self.digits
可以以某种方式使用。
您可以在格式说明符中嵌套格式
以你的例子为例并修复一些问题(缺少导入,不必要的 numpy
,class 名称不匹配,打印变量而不是仅仅访问它,在数字前面加点以限制小数位):
import math
class Test():
def __init__(self):
self.digits = 5
self.pi = f"{math.pi:.{self.digits}f}"
test = Test()
print(test.pi)
输出:
$ python3 t.py
3.14159