python作为面向对象的编程语言,类和对象相关的编程当然是少不了的!

python类:

1 class 类名 :
2     变量名 [ = 初始值 ]
3     ……
4     def 函数名 ( self [ , 其余参数列表 ]) :
5         函数体
6         ……

基本是个这样子的!

注意self参数,在我接触到的类方法里几乎都要在参数列表第一项填上self,当然只是在类定义的时候,在调用的时候大概默认将对象传入了函数中,所以调用时不需要传入这个参数。在方法定义的过程中使用到的类变量也需要用 self.变量名 的方式,不然会报错,表示变量是外部变量不能直接修改。

在一个类的类方法中使用其他模块的方法,只需要import一下就行

1 from 模块名 import 方法名

 

在python中,有许多内置方法是可以重载的,就像C++的类里的重载运算符,不过也有很多差别。

__init__( self ) :

这个就相当于C++里面的构造函数了,在对象生成的时候就会自动调用~

 

__add__( self [ , ] ) :

重载__add__相当于重载“+”运算符,可以实现对象的加法操作。

 1 >>> class A:
 2       num = 1;
 3       def __add__( self , other ) :
 4           tmp = A()
 5           tmp.num = self.num + other.num
 6           return tmp
 7 
 8     
 9 >>> a = A()
10 >>> b = A()
11 >>> a = a + b
12 >>> print( a.num )
13 2

 


__str__( self [ , ]) :

重载__str__使对象拥有字符串的表示方法,这样在调用 print(对象名) 时就可以直接输出

1 >>> class A:
2         num = 1;
3         def __str__( self ) :
4             return "num = %d"%self.num
5 
6     
7 >>> a = A()
8 >>> print(a)
9 num = 1

 


__repr__( self [ , ]) :

重载__repr__使对象可以直接被调用输出

1 >>> class A:
2         num = 1;
3         def __repr__( self ) :
4             return "num = %d"%self.num
5 
6     
7 >>> a = A()
8 >>> a
9 num = 1