1.類
類是現實世界或思惟世界的實體在計算機中的反映
它將數據以及這些數據上的操做封裝在一塊兒
首字母大寫;單詞之間大寫鏈接
2.類包含:變量和方法
變量:
類變量
實例變量
方法:
1.實例方法
2.類方法 @classmethod(裝飾器)
1.特殊的類方法:構造函數 def __init__(self,x,y):
做用:讓模板建立不一樣的對象,初始化對象的特性
默認被調用;亦可被主動調用
2.普通類方法:前面加 @classmethod裝飾器
3.靜態方法 @staticmethod
3.方法訪問變量
1.實例方法訪問實例變量
def 方法(self,x):
self.實例變量=x
2.實例方法訪問類變量
self.__class__.類變量=
3.類方法訪問類變量
def plus_sum(cls):
cls.類變量
4.成員的可見性
1.原則:只容許內部的方法操做變量,避免直接修改數據變量
2.__ 前面加 雙下劃線 變量變成私有
def 方法(self,x):
self.__變量=x
3.在外部調用 self.__變量=x 時,不是訪問而是新建一個
4.可經過__dict__查變量字典
5.類方法 @classmethod裝飾器
1. 在函數前加上一個@classmethod 將self改爲cls
2. 避免邏輯錯亂,不要用對象調用類方法
3. 能夠訪問類變量 cls.sum(實例方法:self.__class__.變量 )
4. 調用:類.類方法() (不建議用對象調用類方法,不合邏輯)
6.靜態方法 @staticmethod,不推薦用此方法
# 在函數前加上一個@staticmethod
# 能夠同時被 對象、類 調用
# 能夠訪問類變量 Student.sum,和變量關聯性不大的方法時用
案例
class Student():
#類變量
sum1=0
# 構造函數(類方法)
def __init__(self,name,age):
#實例變量
self.name=name
self.age=age
#調用類變量
self.__class__.sum1+=1
#構造函數默認被調用
print('學員人數',self.sum1)
#經過方法對變量進行賦值(不提倡直接訪問類變量的方式來修改值)
def marking(self,score):
self.__score=score
print(self.name+'同窗的成績爲:'+str(self.__score))
#經過類方法調用類變量
@classmethod
def stu_sum(cls):
print('學員人數',cls.sum1)
#實例方法,調用內部實例方法
def do_homework(self):
self.do_eng_homework()
#實例方法
def do_eng_homework(self):
print(self.name,'do eng homework')
student1=Student('小明',21)
student2=Student('小明2',21)
student3=Student('小明3',21)
student1.do_homework()
Student.stu_sum()
student1.marking(90)
# 偷偷調用私有變量的方法
#print(student1.__dict__) #->{'name': '小明', 'age': 21, '_Student__score': 90}
#print(student1._Student__score)