祝建宇 发表于 2020-8-25 10:46:42

突发奇想

Python第37课第三题:
原式: class Person:
            __name = '小甲鱼'
            def getName(self);
我想用之前的异常处理来解决出错误的原因,所以用下面的方法写出代码,希望指点指点。
try:
    class Person:
      __name='小甲鱼'
      def getName(self):
            return name
except AttributeError as reason:
    print('文件出错的原因是:'+str(reason))

1q23w31 发表于 2020-8-25 10:49:09

try:
    class Person:
      __name='小甲鱼'
      def getName(self):
            return name
except as reason:
    print('文件出错的原因是:'+str(reason))

祝建宇 发表于 2020-8-25 10:57:58

1q23w31 发表于 2020-8-25 10:49


不对吧,没有错误原因识别不了啊!

1q23w31 发表于 2020-8-25 11:01:24

祝建宇 发表于 2020-8-25 10:57
不对吧,没有错误原因识别不了啊!

try:
    class Person:
      __name='小甲鱼'
      def getName(self):
            return name
except BaseException as reason:
    print('文件出错的原因是:'+str(reason))
少打了一个

Twilight6 发表于 2020-8-25 11:18:08




class Person:
    __name='小甲鱼'
    def getName(self):
      try:
            return name
      except NameError as error:
            print('文件出错的原因是:'+str(error))
Person().getName()

祝建宇 发表于 2020-8-25 11:48:02

Twilight6 发表于 2020-8-25 11:18


这是怎么想到的?是结尾缺少调用吗?

Twilight6 发表于 2020-8-25 12:04:58

祝建宇 发表于 2020-8-25 11:48
这是怎么想到的?是结尾缺少调用吗?




不是缩进、语法之类运行前就会报出错误的问题,函数定义中的其他错误都需要调用才会触发的


祝建宇 发表于 2020-8-25 15:54:07

Twilight6 发表于 2020-8-25 11:18


我是用Try语句放在开头,这不可以吗?不太懂
页: [1]
查看完整版本: 突发奇想