类的私有方法实例如下:

实例(Python 3.0+)

#!/usr/bin/python3 class Site:    def __init__(self, name, url):        self.name = name       # public        self.__url = url   # private    def who(self):        print('name  : ', self.name)        print('url : ', self.__url)    def __foo(self):          # 私有方法        print('这是私有方法')    def foo(self):            # 公共方法        print('这是公共方法')        self.__foo() x = Site('菜鸟教程', 'www.runoob.com')x.who()        # 正常输出x.foo()        # 正常输出x.__foo()      # 报错

以上实例执行结果:

类的专有方法:

  • __init__ : 构造函数,在生成对象时调用

  • __del__ : 析构函数,释放对象时使用

  • __repr__ : 打印,转换

  • __setitem__ : 按照索引赋值

  • __getitem__: 按照索引获取值

  • __len__: 获得长度

  • __cmp__: 比较运算

  • __call__: 函数调用

  • __add__: 加运算

  • __sub__: 减运算

  • __mul__: 乘运算

  • __truediv__: 除运算

  • __mod__: 求余运算

  • __pow__: 乘方

运算符重载

Python同样支持运算符重载,我们可以对类的专有方法进行重载,实例如下:

实例(Python 3.0+)

#!/usr/bin/python3 class Vector:   def __init__(self, a, b):      self.a = a      self.b = b   def __str__(self):      return 'Vector (%d, %d)' % (self.a, self.b)     def __add__(self,other):      return Vector(self.a + other.a, self.b + other.b) v1 = Vector(2,10)v2 = Vector(5,-2)print (v1 + v2)

以上代码执行结果如下所示:

Vector(7,8)