python前向引用(即函数调用在函数定义之前)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python前向引用(即函数调用在函数定义之前)
class Cls: def foo(self): print("foo in Cls") """invoke first""" self.bar()
def bar(self): print("bar in Cls")
"""define second""" pass cls = Cls() cls.bar() #the below express will fail cls.foo()
在python core第11.3章节有如下一段话:
引用这段代码是正确的因为即使(在foo()中)对bar()进行的调用出现在bar()的定义之前,但foo()
本身不是在bar()声明之前被调用的。换句话说,我们声明foo(),然后再声明bar(),接着调用foo(),
但是到那时,bar()已经存在了,所以调用成功。
self前缀意指实例的成员,python中类中的方法可以分为3种:实例方法,类方法,静态方法,lz所说的带self的是实例方法;类方法以类名为第一个参数,用内置函数classmethod创建,类或实例调用时自动添加第一个参数,就
跟实例方法自动添加第一个参数时一样;静态方法完全就像普通函数,由staticmethod创建,3.x后在类中不加self的默认就是静态方法,是完全允许的