Python 如何访问方法参数的类属性

Python 如何访问方法参数的类属性,python,class,Python,Class,输出: 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

输出:

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()

我试图使它成为我可以更改类的所有实例的
小数
值的地方,同时在
\uuuu init\uuu
方法中将其用作参数。为什么上面的方法不起作用?

定义方法时,将计算
\uuu init\uuu
的默认参数。此时变量的值仍然是
True

如果希望在调用方法时对类变量求值,则需要在方法体内部进行求值:

The matrix will have decimal values.
输出:

矩阵将具有浮点值。

它不起作用,因为默认值是在函数/方法定义时定义(和设置)的。当您设置
Matrix.decimals=False
\uuuu init\uuuu.decimals
的值在事后看来已经设置为
True
,这种重复可能不是最好的。如果有人找到更好的,请随时感谢你。建议的问题与我在这里提出的不同。它更多地涉及继承的范围,而我这里的问题涉及类属性的范围。
class Matrix:

    decimals = True

    def __init__(self, decimals=None):
        if decimals is None:
            decimals = self.decimals

        if decimals:
            print('The matrix will have decimal values.')
        else:
            print('The matrix will have float values.')


Matrix.decimals = False
mat1 = Matrix()