VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python魔术方法详解

准备工作

为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始。

1
2
3
4
class NewType(Object):
  mor_code_here
class OldType:
  mor_code_here

 

在这个两个类中NewType是新类,OldType是属于旧类,如果前面加上 _metaclass_=type ,那么两个类都属于新类。

 

构造方法

构造方法与其的方法不一样,当一个对象被创建会立即调用构造方法。创建一个python的构造方法很简答,只要把init方法,从简单的init方法,转换成魔法版本的_init_方法就可以了。

1
2
3
4
5
6
7
class FooBar:
    def __init__(self):
        self.somevar= 42
         
>>> f=FooBar()
>>> f.somevar
42

 

重写一个一般方法

每一个类都可能拥有一个或多个超类(父类),它们从超类那里继承行为方法。

1
2
3
4
5
6
7
8
9
class A:
    def hello(self):
        print 'hello . I am A.'
class B(A):
  pass
>>> a= A()
>>> b= B()
>>> a.hello()
hello . I am A.

 

因为B类没有hello方法,B类继承了A类,所以会调用A 类的hello方法。

在子类中增加功能功能的最基本的方式就是增加方法。但是也可以重写一些超类的方法来自定义继承的行为。如下:

1
2
3
4
5
6
7
8
9
class A:
    def hello(self):
        print 'hello . I am A.'
class B(A):
    def hello(self):
        print 'hello . I am  B'
>>> b= B()
>>> b.hello()
hello . I am  B

相关教程