关于python的类

一、python的类

1.1 定义: class [类名](父类名): 【注意要有冒号】

如果没有特别指定的父类,建议父类为object,即 “ class [类名](父类object):

1.2 self,cls

self,cls类是C++的this指针,分别代表实例指针和类指针。注意self,cls并不是关键字,即使改成其他名字不影响编译执行,但是从维护代码的角度来看,不建议更改。

1.3 构造函数和析构函数

构造函定义:def  __init__(self): 【注意要有冒号】

析造函定义:def  __del__(self): 【注意要有冒号】

1.4 实例变量和类变量(访问等级待补充)

a) 实例变量:

实例变量定义在构造函数中,这些变量只有经过实例化后才可以调用,不通实例同一种实例变量相互独立 

定义方式如下:

def  __init__(self)

self.a

self.b

....

                     b) 类变量:
                     变量定义在构造函数外,这些变量类是C++和JAVA中的静态变量,类变量在不同实例间是相互共享的

二、实例方法、类方法和静态方法   
        a) 实例方法:
                定义:def  实例方法名(self [,x,y]):【x,y为可选的形参】
                 实例方法通过self访问实例变量和类变量;
                实例方法只能通过实例变量来访问;
        b) 类方法:
                定义:
                  @classmethd       【注意不可确实修饰 @classmethd
                  def  类方法名(cls[,x,y]):【x,y为可选的形参】
                 类方法通过cls访问类变量,方法不能访问实例变量;
                 类方法可以通过实例变量类名来访问
        c)静态方法:
              定义:
                     @staticmethd     【注意不可确实修饰 @staticmethd 
                    def  类方法名([x,y]):【x,y为可选的形参】
                 静态方法不能访问实例变量和类变量;
                 静态方法可以通过实例变量类名来访问

        例子

class A ( object ):   

    def foo self ):   

        print "executing foo(%s,%s)" %( self   

    @classmethod   

    def class_foo cls ):        

        print "executing class_foo(%s,%s)" %( cls     

    @staticmethod 

    def static_foo ):        

        print "executing static_foo(%s)" % x  

              -------------------------------------------------

a = A ()  

foo   

# executing foo(<__main__.A object at 0xb7dbef0c>,1)   

class_foo   

# executing class_foo(<class '__main__.A'>,1)   

class_foo   

# executing class_foo(<class '__main__.A'>,1)   

static_foo   

# executing static_foo(1)   

print foo   

# <bound method A.foo of <__main__.A object at 0xb7d52f0c>>   

print class_foo   

# <bound method type.class_foo of <class '__main__.A'>>   

print ( a . static_foo )   

# <function static_foo at 0xb7d479cc>


参考

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值