zhang0127 发表于 2019-6-14 23:21:32

有个问题困惑已久,求大神解答!!

本帖最后由 zhang0127 于 2019-6-15 22:02 编辑




如上图,标记1是全局变量x,然后在函数内对x进行修改就会报错;标记3,在一个类定义内,count属于函数的外部变量(类属性),在标记4处(函数内部)对count进行修改却可以顺利执行,这是为神马啊???

ba21 发表于 2019-6-14 23:27:58

图1
x=0 和 x+=1 不在同一域。一个全局,一个函数内部。

图2
count = 0 是类全局
self.count 是类实例化后每个实例的变量。
count 不等于 self.count (两者不是同一个东西。)

改名方便 理解
a = 0
self.b += ord(i)
再看,是一个东西吗?

zhang0127 发表于 2019-6-14 23:38:44

ba21 发表于 2019-6-14 23:27
图1
x=0 和 x+=1 不在同一域。一个全局,一个函数内部。



zhang0127 发表于 2019-6-14 23:39:48

ba21 发表于 2019-6-14 23:27
图1
x=0 和 x+=1 不在同一域。一个全局,一个函数内部。



zhang0127 发表于 2019-6-14 23:42:13

zhang0127 发表于 2019-6-14 23:39


我就是被这个给搞晕了,如果不给一个类全局变量count,则下面的函数self.count就会找不到,就会报错

ba21 发表于 2019-6-14 23:50:58

zhang0127 发表于 2019-6-14 23:39


self.count += ord(i)
self.count = self.count + ord(i)
请问您,self.count的初始值是什么???????


>>> class Nstr:
        c = 0
        def __init__(self, x):
                self.count = 0
                for i in x:
                        self.count += ord(i)

                       
>>> a = Nstr('x')
>>>

zhang0127 发表于 2019-6-15 22:01:34

ba21 发表于 2019-6-14 23:50
self.count += ord(i)
self.count = self.count + ord(i)
请问您,self.count的初始值是什么????? ...

理解啦,谢谢你~~~
页: [1]
查看完整版本: 有个问题困惑已久,求大神解答!!