这一次,我把函数当成的方法
2018-07-29 本文已影响4人
胆小的米老鼠
python学习了异常这一个知识,视频中有一个小例子,由于时间关系没有跟着敲,因为例子程序不是很难,想着能自己写出来。得空就把代码撸完
def test1(self):
print("------one----")
print(num)
print("hellow wrold!")
def test2(self):
print("------two------")
test1()
print("大家晚上好")
def test3(self):
try:
print("今天下雨了,不过下了一会")
test2()
print("到时候睡觉了!")
except NameError as na:
print (na)
test3()
print("程序结束"
大家觉的这个程序是很写的完美呢?当时我也是这么认为,果断运行见证奇迹:
F:\python_code>python 异常.py
Traceback (most recent call last):
File "异常.py", line 29, in <module>
test3()
TypeError: test3() missing 1 required positional argument: 'self'
What?缺参数,我审查了半天,self
不是不用传参数的吗?为什么要让我在调用的时候传参数呢?运行好几次也没有发现问题出在什么地方。由于有事情就先关闭了,日后解决。
第二天中午我又来运行这个程序,还是一样的报错,我就盯着程序心时骂它,这是搞什么鬼?
突然灵光一现
我想起来在视频中讲解def
在类中是代表方法,而方法是必须要带self
,而在类之外就是函数了,函数不用必须写self
,怀关激动的心情把所有self
给delete
,保存--运行--成功!
修改后代码:
def test1():
print("------one----")
print(num)
print("hellow wrold!")
def test2():
print("------two------")
test1()
print("大家晚上好")
def test3():
try:
print("今天下雨了,不过下了一会")
test2()
print("到时候睡觉了!")
except NameError as na:
print (na)
test3()
print("程序结束")
总结
学习知识,保证看视频或者看书和动手的时间比例保持3:1是正确的,坚持做到这一点,多写,多敲,多做笔记输出,孔子曰:好记性不如烂笔头。