繁体   English   中英

类属性的 Python 类中的自我与返回

[英]Self vs return in Python Classes for Class Attribute

假设我有一个列表形式的类属性,以及该类中的两个函数,它们将数据附加到列表中以便对列表进行进一步操作。

这是否是编写相同内容的正确方法:

class Sample:
    def __init__(self):
        self.Mylist = []
        self.customfunc1()
        self.customfunc2()
        self.customfunc3()

    def customfunc1(self):
        somevar = 1
        self.Mylist.append(somevar)
    
    def customfunc2(self):
        somevar = 2
        self.Mylist.append(somevar)

    def customFunc3(self):
        ## Operations on self.Mylist

或者我是否需要在每个子函数之后返回一个值。 我是使用“自我”参考的新手,因此感谢任何帮助。

这一切都取决于意图。 例如,当您查看标准库 ( list.append ) 时,约定是当一个方法改变其参数时,它不返回任何内容(即它隐式返回None )。 这个想法是为了让数据被更改变得非常明显。

另一方面,如果数据没有更改但您创建了一个新实例,那么,您实际上没有任何其他选项可以返回新实例。

对于您的示例,有点难以判断,因为它有点人为,但由于MyList是类的内部实现细节,我绝对不会返回(或值)。

PS:在你的例子中,只有“实例变量”,而不是“类属性[s]”——因为这些字段必须在上面的一个范围内声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM