【发布时间】:2021-06-12 23:05:03
【问题描述】:
class Matrix:
decimals = True
def __init__(self, decimals=decimals):
if decimals:
print('The matrix will have decimal values.')
else:
print('The matrix will have float values.')
Matrix.decimals = False
mat1 = Matrix()
输出:
The matrix will have decimal values.
我正在尝试为一个类的所有实例更改decimals 的值,同时还将它用作__init__ 方法中的参数。为什么上述方法不起作用?
【问题讨论】:
-
它不起作用,因为默认值是在函数/方法定义时定义(和设置)的。当你设置
Matrix.decimals = False时,__init__.decimals的值已经设置为True -
事后看来,那个副本可能不是最好的。如果有人找到更好的,请随时更换