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