Discuss / Python / 显示只读的一些情况

显示只读的一些情况

Topic source

yoihikari

#1 Created at ... [Delete] [Delete and Lock User]

看了之前的讨论,尤其是涂鹏不是唐僧和久疤的,我试了下,貌似发现了一些东西。 使用slots后,用实例第一次调用方法赋值或者直接通过类赋值,得到的都是类属性值,根据赋值方法绑定不同还有不同情况:

  1. 如果使用setattr方法绑定赋值方法,用实例再次调用方法或者直接赋值都不可行,显示只读;
  2. 如果用MethodType绑定赋值方法,可以通过实例再次调用方法来赋值,但不能用实例直接赋值,此时显示只读。 类可以直接赋值。

yoihikari

#2 Created at ... [Delete] [Delete and Lock User]

上述的方法是绑定在类上的情况,如果是绑定在实例上:

  1. 使用MethodType绑定,可以通过实例调用方法赋值,多次赋值也可以,也可以直接赋值,实例属性和类属性不一致,但一旦给类属性赋值,两者就一致了,之后不能再用实例调用方法赋值,也不能再直接赋值,显示只读。
  2. 使用setattr绑定情况与1类似,只是在通过实例调用方法时要加上实例名。

  • 1

Reply