Python类和方法_init和str方法

一,init方法

init 方法就是对initialization的缩写,初始化的意思,这个方法相当于C++中的构造函数,是一种特殊的方法,在对象被实例化的时候被调用。

这个方法的全名是_ _init_ _,在 Time 类当中,init 方法示例如下:

>>> class Time:

...     def print_time(self):

...         print('%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second))

...     def __init__(self, hour=0, minute=0, second=0):

...         self.hour = hour

...         self.minute = minute

...         self.second = second

... 

一般情况下,init 方法里面的参数与属性变量的名字是相同的,比如self.hour = hour就存储了参数 hour 的值,赋给了属性变量hour本身。

这些参数都是可选的,所以如果你调用 Time 对象,但不给任何参数,得到的就是默认值。

>>> time = Time()

>>> time.print_time()

00:00:00

如果你提供一个参数,就先覆盖 hour 的值:

>>> time = Time(10)

>>> time.print_time()

10:00:00

如果提供两个参数,就先后覆盖hour和minute的值:

>>> time = Time(10, 30)

>>> time.print_time()

10:30:00

提供三个参数,连second的初始值也会覆盖:

>>> time = Time(10, 30, 45)

>>> time.print_time()

10:30:45

二,str方法

str 是一种特殊的方法:接收一个对象,返回一个代表该对象的字符串。

>>> class Time:

...     def __str__(self):

...         return '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)

...     def __init__(self, hour=0, minute=0, second=0):

...         self.hour = hour

...         self.minute = minute

...         self.second = second

... 

>>> time = Time(10, 30)

>>> print(time)

10:30:00

这样当你用 print 打印输出一个对象的时候,Python 就会调用这个 str 方法。

写一个新的类的时候,总要先写出来 init 方法,这样有利于简化对象的初始化,还要写个 str 方法,这个方法在调试的时候很有用。

结束。

原文地址:https://www.cnblogs.com/liusingbon/p/13303013.html