1
A
回答
2
>>> class a(object):
... b = 'bbbb'
... def __init__(self):
... self.c = 'cccc'
...
>>> a1=a()
>>> a2=a()
>>> a1.b
'bbbb'
>>> a2.b
'bbbb'
>>> a1.c='dddd'
>>> a1.c
'dddd'
>>> a2.c
'cccc'
>>> a.b= 'common'
>>> a1.b
'common'
>>> a2.b
'common'
9
是的,有區別。
b
是一個類變量......一個由a
的所有實例共享的類,而c
是一個實例變量,它將獨立存在於每個實例中。
2
'b'是一個類屬性,直接在類對象'a'上設置。 'c'是一個實例屬性,直接在self上設置。 self.b
由於查找的工作原理會找到a.b
,因此不能使用a.c
(因爲它不存在)。
5
b
是一個類變量,而c
是一個實例變量。
>>> a.b
'bbbb'
>>> a.c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'a' has no attribute 'c'
>>> a().b
'bbbb'
>>> a().c
'cccc'
類的實例對於它們的實例變量可能具有不同的值,但它們共享相同的類變量。
相關問題
- 1. Vim中b和B有什麼區別?
- 2. $ b和$$ b有什麼區別?
- 3. python中b''和''有什麼區別?
- 4. A == B對B == A,有什麼區別
- 5. a = b = c和編程分別賦值有什麼區別?
- 6. Tcl [list a b c] vs {a b c}有什麼區別,在什麼情況下?
- 7. a // b和int(a/b)之間有什麼區別?
- 8. Ruby中的object.method(a,b)和方法(a,b)有什麼區別
- 9. Object b();有什麼區別?和對象b;?
- 10. MatLab中的[A,B]和[A; B]有什麼區別?
- 11. array.sort()和array.sort(function(a,b){return a - b;})有什麼區別?
- 12. flash(a,b)和flash()。put(a,b)在PlayFramework中有什麼區別?
- 13. 在git中,A..B和A ... B有什麼區別?
- 14. swap(int&a,int&b)和swap(int * a,int * b)。有什麼區別?
- 15. 什麼區別\\。\ C:和\\。\ C:\
- 16. char [] c和char c []有什麼區別?
- 17. Managed C++和C++/CLI有什麼區別?
- 18. Visual C++和C++有什麼區別?
- 19. \ c和\\ c有什麼區別?
- 20. c#和visual c#有什麼區別?
- 21. printf中%c和%C有什麼區別?
- 22. 託管C++和C#有什麼區別?
- 23. C++和C++ CLI有什麼區別
- 24. 有什麼區別git fetch B + git merge B vs git merge origin/B
- 25. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 26. 有什麼區別C#
- 27. SqlCeConnection和SqlConnection C#有什麼區別?
- 28. Objective-C和Cocoa有什麼區別?
- 29. C++中fprintf和vfprintf有什麼區別?
- 30. C++中0x和'\ x'有什麼區別?
你可能是指「是」,因爲*有*差異。 – fsanches 2010-01-01 02:22:29