摘要:類類是現(xiàn)實世界或思維世界的實體在計算機中的反映它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起首字母大寫單詞之間大寫連接類包含變量和方法變量類變量實例變量方法實例方法類方法裝飾器特殊的類方法構(gòu)造函數(shù)作用讓模板創(chuàng)建不同的對象,初始化對象的特性默認(rèn)被調(diào)用
1.類
類是現(xiàn)實世界或思維世界的實體在計算機中的反映 它將數(shù)據(jù)以及這些數(shù)據(jù)上的操作封裝在一起 首字母大寫;單詞之間大寫連接2.類包含:變量和方法
變量: 類變量 實例變量 方法: 1.實例方法 2.類方法 @classmethod(裝飾器) 1.特殊的類方法:構(gòu)造函數(shù) def __init__(self,x,y): 作用:讓模板創(chuàng)建不同的對象,初始化對象的特性 默認(rèn)被調(diào)用;亦可被主動調(diào)用 2.普通類方法:前面加 @classmethod裝飾器 3.靜態(tài)方法 @staticmethod3.方法訪問變量
1.實例方法訪問實例變量 def 方法(self,x): self.實例變量=x 2.實例方法訪問類變量 self.__class__.類變量= 3.類方法訪問類變量 def plus_sum(cls): cls.類變量4.成員的可見性
1.原則:只允許內(nèi)部的方法操作變量,避免直接修改數(shù)據(jù)變量 2.__ 前面加 雙下劃線 變量變成私有 def 方法(self,x): self.__變量=x 3.在外部調(diào)用 self.__變量=x 時,不是訪問而是新建一個 4.可通過__dict__查變量字典5.類方法 @classmethod裝飾器
1. 在函數(shù)前加上一個@classmethod 將self改成cls 2. 避免邏輯錯亂,不要用對象調(diào)用類方法 3. 可以訪問類變量 cls.sum(實例方法:self.__class__.變量 ) 4. 調(diào)用:類.類方法() (不建議用對象調(diào)用類方法,不合邏輯)6.靜態(tài)方法 @staticmethod,不推薦用此方法
# 在函數(shù)前加上一個@staticmethod # 可以同時被 對象、類 調(diào)用 # 可以訪問類變量 Student.sum,和變量關(guān)聯(lián)性不大的方法時用案例
class Student(): #類變量 sum1=0 # 構(gòu)造函數(shù)(類方法) def __init__(self,name,age): #實例變量 self.name=name self.age=age #調(diào)用類變量 self.__class__.sum1+=1 #構(gòu)造函數(shù)默認(rèn)被調(diào)用 print("學(xué)員人數(shù)",self.sum1) #通過方法對變量進(jìn)行賦值(不提倡直接訪問類變量的方式來修改值) def marking(self,score): self.__score=score print(self.name+"同學(xué)的成績?yōu)椋?+str(self.__score)) #通過類方法調(diào)用類變量 @classmethod def stu_sum(cls): print("學(xué)員人數(shù)",cls.sum1) #實例方法,調(diào)用內(nèi)部實例方法 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) # 偷偷調(diào)用私有變量的方法 #print(student1.__dict__) #->{"name": "小明", "age": 21, "_Student__score": 90} #print(student1._Student__score)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43730.html
摘要:如果初學(xué)者接觸的第一門語言是,學(xué)習(xí)曲線則會平滑得多,掌握一些基本語法和內(nèi)置的數(shù)據(jù)結(jié)構(gòu),已經(jīng)可以上手寫一些小工具或者小型應(yīng)用。如果你的學(xué)習(xí)時間充足,我的建議是一定要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。 前言 Python是最容易入門的編程語言,沒有之一。如果初學(xué)者接觸的第一門語言是C或者C++,對他們來說最難的不是語法,而是容易出現(xiàn)內(nèi)存泄漏、指針等問題。有時候排查這些問題對初學(xué)者的打擊很大,尤其是沒掌握排...
摘要:反對者在某些領(lǐng)域?qū)Υ擞枰苑裾J(rèn)。下面再引用一段來自維基百科中關(guān)于的歷史。類的更嚴(yán)格的定義是由某種特定的元數(shù)據(jù)所組成的內(nèi)聚的包。類還可以有運行時表示形式元對象,它為操作與類相關(guān)的元數(shù)據(jù)提供了運行時支持。 在開始部分,請看官非常非常耐心地閱讀下面幾個枯燥的術(shù)語解釋,本來這不符合本教程的風(fēng)格,但是,請看官諒解,因為列位將來一定要閱讀枯燥的東西的。這些枯燥的屬于解釋,均來自維基百科。 1、問題...
摘要:面向?qū)ο缶幊蹋喎Q,是一種程序設(shè)計思想。面向過程與面向?qū)ο竺嫦蜻^程的程序設(shè)計把函數(shù)作為程序的基本單元。以上是在計算機世界里認(rèn)識面向?qū)ο蠛兔嫦蜻^程,接下來給大家舉個生活中的例子就拿你早上想吃雞蛋灌餅為例。 面向?qū)ο缶幊獭狾bject Oriented Programming,簡稱OOP,是一種程序設(shè)計思想。OOP把對象作為程序的基本單元,一個對象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。 面向過程 ...
摘要:一面向?qū)ο缶幊?。是一門面向?qū)ο蟮木幊陶Z言,通過對象實現(xiàn)對方法的調(diào)用。面向過程的程序設(shè)計把計算機程序視為一系列的命令集合,即一組函數(shù)的順序執(zhí)行。對于面向?qū)ο笳Z言,重要的概念是類和實例。 一、preface 面向?qū)ο缶幊蘋OP:object oriented programming。OOP把對象作為程序的基本單元,一個對象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。Python是一門面向?qū)ο蟮木幊陶Z言,...
摘要:這里推薦一本書源碼剖析源碼剖析豆瓣這本書把源碼中最核心的部分,給出了詳細(xì)的闡釋,不過閱讀此書需要對語言內(nèi)存模型和指針有著很好的理解。 是否非常想學(xué)好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔(dān)心學(xué)習(xí)成本太高,心里默默敲著退堂鼓? 幸運的是,Python 是一門初學(xué)者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。 Python 的設(shè)計哲學(xué)之一就是...
閱讀 1715·2021-11-02 14:47
閱讀 3661·2019-08-30 15:44
閱讀 1350·2019-08-29 16:42
閱讀 1743·2019-08-26 13:53
閱讀 945·2019-08-26 10:41
閱讀 3476·2019-08-23 17:10
閱讀 615·2019-08-23 14:24
閱讀 1729·2019-08-23 11:59