1. python封裝三階段:
第一階段:將引數例項化到乙個物件; 第二階段:隱藏引數即私有引數;第三階段:定義getter、setter方法,可以設定自己定義的規則
2. 私有屬性和私有方法。用兩個下劃線開頭表示私有,例如: __aaa。只能在類的內部呼叫,不能在類的外部呼叫
3. 示例:
# 封裝的第乙個階段:
class user:
def __init__(self,name,age,address,course,grade=none):# 如果保證每個引數不丟失,都有乙個預設值 grade=none
self.name=name
self.age=age
self.address=address
self.course=course
self.grade=grade
u=user("1",2,3,4,5)
print(u.name)
# 封裝的第二個階段: 將引數作為隱性
class user2:
def __init__(self,name,age,address,course,grade=none):
self.__name=name #前邊兩個下劃線,表示私有,希望引數不被修改.
self.__age=age
self.__address=address
self.__course=course
self.__grade=grade
def __hai(self,msg): #私有方法
print(msg)
__count=1
def pub(self):
print("pub")
print("**********===u22")
u1=user2("uu2",2,3,4,5)
# print(u1.name) #這個是獲取不到的
print(u1._user2__name) #前邊乙個下劃線,表示私有訪問
u1._user2__hai("---")
print(u1._user2__count)
u1.pub()
# 封裝的第三個階段: getter setter
class user3:
def __init__(self,name,age,address,course,grade=none):
self.__name=name
self.__age=age
self.__address=address
self.__course=course
self.__grade=grade
def get_name(self):
return self.__name
def set_name(self,name):
if isinstance(name,str):
self.__name=name
else:
self.__name=str(name)
def get_age(self):
return self.__age
def set_age(self,year):
self.__age=2021-year
print("**********===u1")
u3=user3("xiaowang",2,3,4,5)
# print(u3.name) #這個是獲取不到的
print(u3.get_name())
u3.set_name("xiaogang")
print(u3.get_name())
C 封裝基礎知識
物件陣列 a a 3 棧 a p new a 3 堆 全域性 常量 deletep 拷貝建構函式 a a const a b 深拷貝和淺拷貝 淺拷貝指標指向同一塊記憶體 記憶體覆蓋 不能重複釋放 this指標 引數和成員重名的時候用,所在物件本身的位址 const修飾成員函式,不能修改資料成員的值。...
Python 基礎知識
來自 一 識別符號 1.python 中的識別符號是區分大小寫的。2.標示符以字母或下劃線開頭,可包括字母,下劃線和數字。3.以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from import 而匯入 以雙下劃線開頭的...
python基礎知識
一.隨機數的生成 都需要 import random 1.用於生成乙個指定範圍內的隨機浮點數。print random.uniform 10,20 print random.uniform 20,10 2.生成乙個指定範圍內的整數。下限必須小於上限制 print random.randint 12,...