python基礎知識 封裝

2021-10-21 11:24:39 字數 1854 閱讀 6611

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,...