覆写Python的内置方法

本文最后更新于:1 年前

1.我们可以通过覆写类的内置方法str,来控制print()函数的打印格式

class Point:
"""简单的坐标类"""
def __init__(self, x=0, y=0):
    self.x = x
    self.y = y
def __str__(self):
    return "<{},{}>".format(self.x, self.y)

    if __name__ == '__main__':
point = Point(1, 1)
print(point)

1.1 没有覆写内置方法str时,print()函数的打印结果:

<__main__.Point object at 0x000001D7FD4EB610>
仅仅只会显示类Point的实例对象point的地址

1.2 覆写内置方法str时,print()函数的打印结果:

<1,1>
就会打印出我们预想的结果

2.我们可以通过覆写类内置方法init,来获得类似于C++/Java的访问限制

2.1 私有属性的设置

class Point:
"""简单的坐标类"""
def __init__(self, x=0, y=0):
    self.__x = x
    self.__y = y

前面加两个下划线,表示该属性只能直接在类里面直接访问,或者由类自己的方法来直接访问,类以外的不可以直接访问,但是我们同样可以向C++/Java那样书写Set和Get方法来间接的访问类的私有属性。

2.2 受保护属性的设置

class Point:
"""简单的坐标类"""
def __init__(self, x=0, y=0):
    self._x = x
    self._y = y

受保护属性前面只用加一个下划线,其他的和私有属性基本一致

2.3 以上设置,均属于程序员自己的自我约束/规定,Python并没有强制要求这样书写,但大多数Python程序员都遵守此约定,所以我推荐各位也按照这样来书写,方便以后的阅读。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!