我在学习课程,我有一个练习,创建一个类,做一些字符串函数。一个应该得到一个字符串,另一个应该打印字符串,但是我想知道您是否真的需要在def __init__:
下创建变量,答案应该是这样的:
class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = raw_input()
def printString(self):
print self.s.upper()
我在想,当您得到原始输入时,只创建变量会更加方便。在
有点。在
Python不会强迫您这样做,但如果您不这样做,有时会导致问题
例如-如果在您的示例中,您没有初始化}将引发一个异常。但是,如果您初始化了它(正如您在示例中所做的那样),那么它将打印一个空字符串—这在许多情况下都是可取的。在
__init__
中的s
,那么如果您还没有调用getString
,那么{初始化
__init__
中的所有变量可以保证在需要时它们都将存在。这就是为什么这是好的做法。在您应该这样做的另一个原因是,它使python的工作更轻松when determining the amount of memory required to store your class。Python将检测在
__init__
中设置的属性并相应地分配大小。如果你改变了这个(通过在类上保存新的属性),那么你的类最终会占用你的类,这样每个实例的内存开销可能会增加一倍。(感谢@ShadowRanger指出这一点)相关问题 更多 >
编程相关推荐