1140813598 发表于 2020-12-13 11:37:12

关于小甲鱼的45讲的测试题2题

这是小甲鱼的代码:
>>> class C:
      def __getattr__(self, name):
                print(1)
      def __getattribute__(self, name):
                print(2)
      def __setattr__(self, name, value):
                print(3)
      def __delattr__(self, name):
                print(4)

               
>>> c = C()
>>> c.x = 1
# 位置一,请问这里会显示什么?
>>> print(c.x)
# 位置二,请问这里会显示什么?
这是我自己用pycharm的输出:

他为什么给我疯狂输出2,请问是为什么?/真的脑袋大{:5_94:}

suchocolate 发表于 2020-12-13 12:55:21

我这里正常

Minecraft程序猿 发表于 2020-12-13 13:20:03

运行环境的问题吗,哪里设置错了

1140813598 发表于 2020-12-13 14:56:43

Minecraft程序猿 发表于 2020-12-13 13:20
运行环境的问题吗,哪里设置错了

pycharm我用的是默认配置,安装后就装过几个第三方库,其他设置也没动过,真的脑袋大。

1140813598 发表于 2020-12-13 15:01:10

suchocolate 发表于 2020-12-13 12:55
我这里正常

IDLE里面挺正常的,pycharm就像撞了鬼一样。{:10_285:}

Minecraft程序猿 发表于 2020-12-13 17:20:26

1140813598 发表于 2020-12-13 14:56
pycharm我用的是默认配置,安装后就装过几个第三方库,其他设置也没动过,真的脑袋大。

原装idle是以单个源文件为单位执行的,PyCharm是以项目(或工程)为单位解释执行的,可能是中间出了问题
页: [1]
查看完整版本: 关于小甲鱼的45讲的测试题2题