gpt4 book ai didi

python - 什么时候将事物存储为实例的一部分与返回它们?

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:40 24 4
gpt4 key购买 nike

我只是想知道什么时候将东西存储为类实例的一部分,什么时候使用方法返回东西。例如,以下哪个会更好:

class MClass():

def __init__(self):
self.x = self.get_x()
self.get_y()
self.z = None
self.get_z()

def get_x(self):
return 2

def get_y(self):
self.y = 5 * self.x

def get_z(self):
return self.get_x() * self.x

关于这类事情的约定是什么,我什么时候应该给自己赋值,什么时候应该返回值?这本质上是一种公共(public)/私有(private)的区别吗?

最佳答案

  1. 你不应该返回来自__init__的任何东西。
  2. Python 不是 Java。您不需要为所有内容都包含 get
  3. 如果 x 始终为 2,y 始终为 10,而 z 始终为 12,则代码量很大。

做一些假设,我会写那个类:

class MClass(object):

def __init__(self, x):
self.x = x

def y(self):
return self.x * 5

def z(self):
return self.x + self.y()

>>> c = MClass(2)
>>> c.x
2
>>> c.y() # note parentheses
10
>>> c.z()
12

这允许 x 稍后更改(例如 c.x = 4)并且仍然为 yz< 提供正确的值.

关于python - 什么时候将事物存储为实例的一部分与返回它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com