Skip to main content
 首页 » 编程设计

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

2025年05月04日9dyllove98

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

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)并且仍然为 y 和 z< 提供正确的值.