類別的屬性
1、直接在類別中定義屬性
定義類別的屬性,當然最簡單、最直接的就是在類別中定義,例如:
class UserInfo(object): name='两点水'
2、在建構函式中定義屬性
故名思議,就是在建構物件的時候,對屬性進行定義。
class UserInfo(object): def __init__(self,name): self.name=name
3、屬性的存取控制
在 Java 中,有 public (公共)屬性 和 private (私有)屬性,這可以對屬性進行存取控制。那麼在 Python 中有沒有屬性的存取控制呢?
一般情況下,我們會使用 __private_attrs 兩個底線開頭,宣告該屬性為私有,不能在類別地外部被使用或直接存取。在類別內部的方法中使用時 self.__private_attrs。
為什麼只能說一般情況下呢?因為實際上, Python 中是沒有提供私有屬性等功能的。但是 Python 對屬性的存取控制是靠程式設計師自覺的。為什麼這麼說呢?看看下面的範例:

仔細看圖片,為什麼說雙底線不是真正的私有屬性呢?我們看下面的例子,用下面的例子來驗證:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
def __init__(self, name, age, account):
self.name = name
self._age = age
self.__account = account
def get_account(self):
return self.__account
if __name__ == '__main__':
userInfo = UserInfo('两点水', 23, 347073565);
# 打印所有属性
print(dir(userInfo))
# 打印构造函数中的属性
print(userInfo.__dict__)
print(userInfo.get_account())
# 用于验证双下划线是否是真正的私有属性
print(userInfo._UserInfo__account)輸出的結果如下圖:

新建檔案
預覽
Clear
- 課程推薦
- 課件下載
課件暫不提供下載,工作人員正在整理中,後期請多關注該課程~ 















