设为首页 加入收藏

TOP

Python的类变量和对象变量声明解析
2015-04-07 15:30:04 来源: 作者: 【 】 浏览:20
Tags:Python 变量 对象 声明 解析

  Python的类和C++一样,也都是存在两种类型的变量,类变量和对象变量!前者由类拥有,被所有对象共享,后者由每个对象独有。这里我主要想讨论一下他们的声明办法。?


  首先说的是对象变量:


  只要是声明在类的语句块中,且没有"self."前缀的变量都是类变量,且类变量是被所有对象共享的。


  注意红字部分,如果声明在类的方法的语句块中,那么就是局部变量了!比如下面这个例子:


  那个cvar就是属于Python类的变量,而那个fvar就是方法sayHi()中的局部变量,第11条语句那里就会报错!


?


  接下来我们再来讨论一下对象变量的声明方法:


    在类的方法的语句块中声明的以“self.”开头的变量都是对象变量,由对象独有!


  比如下面这个例子:


  这里在haveName()方法中声明了一个对象变量,然后再在sayName()方法中调用。然后主程序中就会输出了!


  不过建议将对象变量声明在__init__()方法中,因为对象一被创建的时候即会调用这个方法,否则的话,比如上面那个例子,如果我先调用sayName()的话,那么就会出错,说对象实例还没有name这个属性!


?


  最后还想说的一点的就是,Python中没有private public这些关键字来标明类的变量或者方法的访问权限,但是可以通过在变量或者方法的前面加上"__"来表明这个成员是被类私有的,不能在外部调用,比如下面这个例子:


?


--------------------------------------分割线 --------------------------------------


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于fork函数中的内存复制和共享 下一篇SUID或SGID程序中能不能用system..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: