python类变量和实例变量的区别

爱喝马黛茶的安东尼
Lepaskan: 2019-06-24 10:56:09
asal
3225 orang telah melayarinya

Python变量的本质:被赋值。

1 普通python变量(非类相关变量)很容易理解,在被赋值后即变量存在,可读可写。

2 Python类的变量(类变量和实例对象变量)以某种方式在某地方被赋值,即存在,可被读写。

python类变量和实例变量的区别

2.1 Python类变量被赋值

     (1)类的设计里

             class里def外,通过变量名能被赋值。

             def里通过类对象即类名字的点运算变量名可被赋值。

      (2)程序里

             通过类对象(类名字)的点运算类名字也可被赋值。

相关推荐:《Python视频教程

2.2 Python实例对象变量被赋值

    (1)类的设计时

            def里通过self点运算变量名能被赋值,不一定非在init里,其他已被调用的方法函数里也行。

    (2)程序里

            通过实例对象的点运算变量名可被赋值。

常规,类里的变量通过类设计来完成(2.1(1)和2.2(1)),增加类里变量一般不采用(2.1(2)和2.2(2))这种方式,完成(2.1(2)和2.2(2))可通过类的继承去实现。

class aa:
      w = 10
      def __init__(self):
           self.x = 11
           self.y = 12
      def add(self):
           return self.x + self.y
a = aa()
print a.add()
#下边两条指令各起何作用?结果是输出两个 20 么?还是两个13?还是?
aa.w = 20 
a.w = 13
print aa.w, a.w
#程序继续增加如下,怎样理解这t和q呢?他们是___变量
a.t = 14
a.q = 15
print a.t, a.q
#程序继续增加如下,怎样理解这m和n呢?他们是___变量
aa.m = 30
aa.n = 40
print aa.m, aa.n
#好了再来个提升吧
#程序继续增加,下列三个print语句都能正确执行么?为何?
b = aa()
print b.x,b.y
print b.t,b.q
print b.m,b.n
Salin selepas log masuk

要解决以上问题,首先得清晰何时类才有了类变量,实例有了实例变量?

其次要深入理解类变量的作用,实例变量存在的范围和谁相关!

Atas ialah kandungan terperinci python类变量和实例变量的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan