鱼C论坛

 找回密码
 立即注册
查看: 3109|回复: 1

[已解决]python类中类变量,属性变量使用

[复制链接]
发表于 2022-12-10 17:48:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在python类中,定义变量或者称为属性,什么时候应该放在初始化方法中,什么时候放在类的其他方法中?还有什么时候使用类变量呢
def __init__(self, predicted: list, expected: list):
        self.predicted = predicted
        self.expected = expected

def compute_confusion_matrix(self, predicted: list, expected: list) -> int:
这里有两个变量,predicted, expected,我什么情况下应该放在初始化方法__init__中,什么情况下放在方法compute_confusion_matrix中呢?
      

最佳答案
2022-12-10 18:03:19
本帖最后由 阿奇_o 于 2022-12-10 18:05 编辑

视情况而定。。 一般要根据你的 OOP的"对象系统"而定,比如:

  - 类与类之间是什么关系(涉及继承与多态,或组合/描述器等),类与实例之间什么关系以及函数方法怎么写等(如何封装/抽象)
  - 如何调用(通过类名还是实例来调用),是否支持动态修改等
  - 是否属于"全局性的、这一类的"属性(即类变量),还是 每个实例所独有的,或各个实例所共有的 ??

同样,是否需要 在__init__里先完成初始化一些变量,也取决于你的具体需要,一般来说 实例共有的属性,都可以在这里先完成初始化。。(但这不是强制的。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-10 18:03:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阿奇_o 于 2022-12-10 18:05 编辑

视情况而定。。 一般要根据你的 OOP的"对象系统"而定,比如:

  - 类与类之间是什么关系(涉及继承与多态,或组合/描述器等),类与实例之间什么关系以及函数方法怎么写等(如何封装/抽象)
  - 如何调用(通过类名还是实例来调用),是否支持动态修改等
  - 是否属于"全局性的、这一类的"属性(即类变量),还是 每个实例所独有的,或各个实例所共有的 ??

同样,是否需要 在__init__里先完成初始化一些变量,也取决于你的具体需要,一般来说 实例共有的属性,都可以在这里先完成初始化。。(但这不是强制的。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 09:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表