python中功能内的功能,如何在外部调用?类内,方法内的方法呢?在外部又是怎样调用到的?

Python08

python中功能内的功能,如何在外部调用?类内,方法内的方法呢?在外部又是怎样调用到的?,第1张

有两种方法

一、

通过返回内部中定义的方法再在外部调用,像这样:

def a():

def b():

print('b')

return b

a()()

class c:

def f(self):

def g():

print ('g')

return g

c().f()()

这是运行截图:

二、

直接将内部方法定义成global的,像这样:

def a():

global b

def b():

print('bbb')

a()

b()

class c:

def f(self):

global g

def g():

print ('ggg')

c().f()

g()

这是运行截图:

使用方法:

class A(object):  

    def foo(self,x):  

    #类实例方法  

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

 

    @classmethod  

    def class_foo(cls,x):  

    #类方法  

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

 

    @staticmethod  

    def static_foo(x):  

    #静态方法  

        print "executing static_foo(%s)"%x

调用方法:

a = A()  

a.foo(1)     //print   : executing foo(<__main__.A object at 0xb77d67ec>,1)

  

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

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

  

a.static_foo(1)    //executing static_foo(1)  

A.static_foo(1)   //executing static_foo(1)

类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用。

类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数。