Chinaunix首页 | 论坛 | 博客
  • 博客访问: 347531
  • 博文数量: 100
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 521
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-31 11:37
个人简介

活到老,学到老

文章分类

全部博文(100)

文章存档

2018年(1)

2017年(2)

2016年(11)

2015年(82)

2014年(4)

我的朋友

分类: Python/Ruby

2016-07-27 23:46:50

python类中通常出现self、cls两个关键字。
一般约定俗成,self代表类的实例,cls代表类。其实这两个都可以用别的单词代替。

python类中有三种方法:
1、实例方法
    一般用def定义,使用该方法必须通过一个类的实例来访问。至少传递一个参数,一般用self。
2、类方法
    在def的前面加上@classmethod,该方法可以通过类名调用。至少传递一个参数,一般用cls。
3、静态方法
    在def的前面加上@staticmethod,该方法既可以通过类的实例调用,也可以通过类名调用。参数可以为空。

实例代码:

  1. #!/usr/local/bin/python3
    #coding=utf-8


    class A:
        member = "hello world"
        def __init__(self):
            pass


        #实例方法
        def Print1(self):
            print ("##instance method", self.member)


        def Print2(abc):#参数换为任意单词
            print ("##instance method", abc.member)


        @classmethod
        def Print3(cls):
            print ( "####class method:",cls.member)


        @classmethod
        def Print4(abc):#参数换为任意单词
            print ( "####class method:",abc.member)


        @staticmethod
        def Print5():
            print ("###### static method")


    if __name__ == '__main__':
        a = A()
        a.Print1()
        a.Print2()


        A.Print3()
        A.Print4()


        A.Print5()
        a.Print5()
运行结果:

  1. ##instance method hello world
    ##instance method hello world
    ####class method: hello world
    ####class method: hello world
    ###### static method
    ###### static method



阅读(2096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~