声明变量python编程_Python的类变量和对象变量声明解析

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

首先说的是对象变量:

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

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

1 #!/usr/bin/env python

2 #-* - coding: UTF-8 -* -

3 #Function: Use the class var

4

5 classPerson:6 cvar = 1

7 defsayHi(self):8   fvar = 1

9

10 printPerson.cvar11 print Person.fvar

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

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

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

比如下面这个例子:

1 #!/usr/bin/env python

2 #-* - coding: UTF-8 -* -

3 #Function: Use the object var

4

5 classPerson:6 defhaveName(self):7   self.name = 'Michael'

8 defsayName(self):9   printself.name10

11 defmain():12 p =Person()13

14 p.haveName()15 p.sayName()16

17 main()

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

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

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

1 #!/usr/bin/env python

2 #-* - coding: UTF-8 -* -

3 #Function: Use the private var and func

4

5 classPerson:6 __count = 0 #这个变量是私有数据成员,只能被类的方法访问,是属于类的

7 defget(self):8   return Person.__count

9 def __pri(self):10   print 'Yes'

11

12 p =Person()13 printp.get()14

15 p.__pri()16 print p.__count

比如这里的类变量__count就是类私有的,只能被类的函数成员调用(13行),而在类外面调用(16行)就是错误的!还有那个函数成员__pri()也是私有的,在类外面直接调用(15行),也是错误的!

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

Python 的详细介绍:请点这里

Python 的下载地址:请点这里


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部