oneface 发表于 2020-10-31 22:39:07

python 对类的一个疑问

class C:
    def __init__(self):
      count = 6

我想知道外部怎么调用count,还是不能调用呢?
无论是self.count还是C.count
都显示类没有这个属性
很好奇{:10_266:}

冬雪雪冬 发表于 2020-10-31 22:45:25

只能这样
class C:
    def __init__(self):
      self.count = 6
c = C()
>>> c.count
6

oneface 发表于 2020-11-1 00:05:51

冬雪雪冬 发表于 2020-10-31 22:45
只能这样

那,像我那样写count无法访问是吗

oneface 发表于 2020-11-1 00:08:17

冬雪雪冬 发表于 2020-10-31 22:45
只能这样

其实没有写错,我就是很好奇,这样写能不能访问呢,毕竟count应该是在内存里的

小甲鱼的铁粉 发表于 2020-11-1 09:03:46

oneface 发表于 2020-11-1 00:08
其实没有写错,我就是很好奇,这样写能不能访问呢,毕竟count应该是在内存里的

这是python的设计者故意这样设计的,应该是为了安全性吧,一些类里面的东西不可以被直接的访问和修改,比如存储一些秘密的东西,一个人的资产,这种隐私不能被直接的访问和修改,个人看法, 不一定对{:10_243:}

hrp 发表于 2020-11-1 09:50:39

oneface 发表于 2020-11-1 00:08
其实没有写错,我就是很好奇,这样写能不能访问呢,毕竟count应该是在内存里的

这个属于变量作用域的问题

roy_lz 发表于 2020-11-1 11:38:22

只能是先实例化,再选择方法吧。你先整个c=C(),然后再用c.count就可以了。

oneface 发表于 2020-11-1 15:35:55

hrp 发表于 2020-11-1 09:50
这个属于变量作用域的问题

懂了

oneface 发表于 2020-11-1 15:36:59

小甲鱼的铁粉 发表于 2020-11-1 09:03
这是python的设计者故意这样设计的,应该是为了安全性吧,一些类里面的东西不可以被直接的访问和修改,比 ...

应该是在 __init__ 函数的局部变量,退出函数就销毁了,没法访问
页: [1]
查看完整版本: python 对类的一个疑问