classmethod-----------------inner lib of python

# -*- coding: utf-8 -*-
#===============================================================================
# 将function包装成类方法。
# 
# 类方法接受类作为隐式的第一个参数,就像实例方法接受实例作为隐式的第一个参数一样。声明一个类方法,使用这样的惯例:
# 
# class C(object):
#    @classmethod
#    def f(cls, arg1, arg2, ...):
#        ...
# @classmethod是函数decorator(装饰器)参见Function definitions中的函数定义。
# 
# 它即可以通过类来调用(如C.f()),也可以通过实例来调用(如C().f())。除了实例的类,实例本身被忽略。
# 如果在子类上调用类方法,子类对象被传递为隐式的第一个参数。
# 
# 类方法不同于C++或Java中的静态方法。如果你希望静态方法,参见这节的staticmethod()。
# 
# 需要类方法更多的信息,参见The standard type hierarchy中标准类型层次部分的文档。
# 
# 版本 2.2 新增。
# 
# 改变于版本2.4:添加了函数装饰器语法。
#===============================================================================

class Person:
    @classmethod
    def printInfo(self):
        print "我是可以通过类来调用也可以通过类对象来调用的喔"
        
print("通过类名来调用"), Person.printInfo()
print("通过隐式类对象来调用"), Person().printInfo()
person=Person()
print("通过隐式类对象来调用"), person.printInfo()

程序执行的结果

classmethod-----------------inner lib of python_第1张图片

可以看出,这一点和java的注解的方式还是很像的

你可能感兴趣的:(classmethod-----------------inner lib of python)