09-15-周一_16-05-58
This commit is contained in:
@@ -71,12 +71,12 @@ class C:
|
||||
name = "公有静态字段"
|
||||
|
||||
def func(self):
|
||||
print (C.name)
|
||||
print(C.name)
|
||||
|
||||
class D(C):
|
||||
|
||||
def show(self):
|
||||
print (C.name)
|
||||
print(C.name)
|
||||
|
||||
|
||||
print(C.name) # 类访问
|
||||
@@ -94,12 +94,12 @@ class C:
|
||||
__name = "私有静态字段"
|
||||
|
||||
def func(self):
|
||||
print (C.__name)
|
||||
print(C.__name)
|
||||
|
||||
class D(C):
|
||||
|
||||
def show(self):
|
||||
print (C.__name)
|
||||
print(C.__name)
|
||||
|
||||
|
||||
print(C.__name) # 不可在外部访问
|
||||
@@ -140,29 +140,6 @@ obj_son = D();
|
||||
obj_son.show() # 派生类中访问
|
||||
```
|
||||
|
||||
```python
|
||||
class C:
|
||||
|
||||
def __init__(self):
|
||||
self.__foo = "私有字段"
|
||||
|
||||
def func(self):
|
||||
print self.foo # 类内部访问
|
||||
|
||||
class D(C):
|
||||
|
||||
def show(self):
|
||||
print self.foo # 派生类中访问
|
||||
|
||||
obj = C()
|
||||
|
||||
obj.__foo # 通过对象访问 ==> 错误
|
||||
obj.func() # 类内部访问 ==> 正确
|
||||
|
||||
obj_son = D();
|
||||
obj_son.show() # 派生类中访问 ==> 错误
|
||||
```
|
||||
|
||||
```python
|
||||
class C:
|
||||
|
||||
@@ -172,14 +149,16 @@ class C:
|
||||
def func(self):
|
||||
print(self.__foo) # 类内部访问
|
||||
|
||||
|
||||
class D(C):
|
||||
|
||||
def show(self):
|
||||
print(self.__foo) # 派生类中访问
|
||||
|
||||
|
||||
obj = C()
|
||||
|
||||
print(obj.__foo) # 通过对象访问 ==> 错误
|
||||
obj.__foo # 通过对象访问 ==> 错误
|
||||
obj.func() # 类内部访问 ==> 正确
|
||||
|
||||
obj_son = D()
|
||||
@@ -240,11 +219,11 @@ obj.__add() # 派生类中不能访问
|
||||
|
||||
总结:
|
||||
|
||||
对于这些私有成员来说,他们只能在类的内部使用,不能再类的外部以及派生类中使用.
|
||||
对于这些私有成员来说,他们只能在类的内部使用,不能在类的外部以及派生类中使用.
|
||||
|
||||
**ps:非要访问私有成员的话,可以通过 对象._类__属性名,但是绝对不允许!!!**
|
||||
|
||||
为什么可以通过._类__私有成员名访问呢?因为类在创建时,如果遇到了私有成员(包括私有静态字段,私有普通字段,私有方法)它会将其保存在内存时自动在前面加上_类名.
|
||||
为什么可以通过`._类__私有成员名` 访问呢?因为类在创建时,如果遇到了私有成员(包括私有静态字段,私有普通字段,私有方法)它会将其保存在内存时自动在前面加上_类名.
|
||||
|
||||
## 类的其他成员
|
||||
|
||||
@@ -487,7 +466,7 @@ print(issubclass(C,A))
|
||||
思考:那么 list str tuple dict等这些类与 Iterble类 的关系是什么?
|
||||
|
||||
```python
|
||||
from collections import Iterable
|
||||
from collections.abc import Iterable
|
||||
|
||||
print(isinstance([1,2,3], list)) # True
|
||||
print(isinstance([1,2,3], Iterable)) # True
|
||||
|
Reference in New Issue
Block a user