奇特的Python类方法

函数要先定义再调用,这个内容已经说了很多了,自学了python快二周了,今天突然有个想法,在类里面也是这样吗?
话不多说,先上代码:

‘class TestDefFunction:
def init(self, a):
self.a = a
def test(self):
if self.a == ‘a’:
try:
self.print_test()
except:
print(‘定义未成功’)
else:
print(‘字母输入错’)
def print_test(self):
print(‘定义成功’)

test1 = TestDefFunction('a')

test1.test()`

在这里,print_test()函数被定义在调用后面了,当运行程序后,猜猜看什么结果?结果是输入了“定义成功”,说明在类里面,当调用不存在的self.print_test()函数时,编译器并不争着报错,而在类里调用语句后面去找这个函数,如果在类里存在,则执行函数。同样的思路用在类外则不行,代码:

``def op_func(a):
if a == ‘a’:
try:
print_test()

    except:
        print('定义未成功')

else:
        print('输入字母错')

def print_test():
    print('定义成功')

op_func(‘a’)’

运行后结果是“定义未成功”
感觉python学习还是很有意思的,大家共同进步

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值