摘要:類其實就是由屬性和方法組成的一個抽象概念。類和對象的關系類是模板,對象是根據類這個模板創建出來的,應該先有類,再有對象。使用同一個類,能夠創建出很多對象。不同對象對應的屬性值也會不同。
目錄
類是對一群具有相同 特征 或者 行為 的事物的一個統稱,是抽象的,不能直接使用。
特征其實就是一個變量,在類里我們稱之為屬性。
行為其實就是一個函數,在類里我們稱之為方法。
類其實就是由 屬性 和 方法 組成的一個抽象概念。
對象是由類創建出來的一個具體存在,可以直接使用。由哪一個類創建出來的對象,就擁有在哪一個類中定義的屬性和方法。在開發中,應該先有類,在類里定義好屬性和行為,再根據類來創建對象。
類和對象的關系
類是模板,對象是根據類這個模板創建出來的,應該先有類,再有對象。
使用同一個類,能夠創建出很多對象。
類中定義了什么屬性和方法,對象中就有什么屬性和方法。
不同對象對應的屬性值也會不同。
三、類的定義
?
class 類名(): def 方法1(self,參數列表): pass def 方法2(self,參數列表): pass
方式一:通過?類名.類屬性
?訪問
方式二:通過?實例對象.類屬性
?訪問
class Person(object): # 類屬性 num = 10p = Person()# 方式一print(Person.num)# 方式二print(p.num)
通過前面對于面向對象編程的操作,我們已經了解面向對象編程是指創造一個類(動物類,植物類等等)這些類有很多種特征(屬性),這些特征又是如何實現(方法,函數)。那么面向對象就是就是針對某一類物體進行的介紹與方法
其實說白了面向對象是就是對代碼進行封裝,列表也是封裝,字典元組集合也是如此,函數亦是如此,面向對象的三大特征是指:封裝性,繼承性還有多態性
創建一個烏龜類
class wugui(): color="綠色" foot=4 weight=10 has_guike=True #會爬 def crawl(self): print("烏龜會爬") #會吃 def eat(self): print("烏龜會吃") #會睡覺 def sleep(self): print("烏龜會睡覺")
面向對象要比函數變量更加體現出事物的特征
構造方法:
def __init__(self,......):
這個操作主要是構造特征的時候解釋器會自動調用它,在括號內可以包含很多參數用逗號分割開,但是self是必不可少的
類體中的變量類型
所有函數之外,此范圍定義的變量,稱為類屬性或類變量
函數內部,以self.變量名的方法定義但是變量,稱為實例屬性或實例變量
函數內部,以變量名=變量值的方法定義的變量稱為局部變量
操作
class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name.title() + " is now sitting.") def roll_over(self): print(self.name.title() + " rolled over!")
在c語言當中,曾經使用微信程序了解到,在一個程序運行的時候,程序從硬盤通過cpu的驅使下進入到內存中,程序是運行數據由諸多變量組成,變量的作用是存儲數據,我們理解為變量在程序中開辟空間存儲數據,再又小程序進行運行,變量像一個盒子裝入了所有的數據
但是·在python中,變量和數據又有明顯不同
在python中,數據自成空間進行運行,變量與數據沒有包含關系,他的作用是用來保存數據的地址,它類似與c語言的指針,保存地址,指向這個數據完成代碼等等運行
所以在python中,變量存儲變量的地址就是變量的引用,在python中函數的參數傳遞和返回值都是靠變量的引用完成的
所以說在python中每次定義變量一定要對變量進行賦值,由于python的變量與數據的區別,所以必須必須有一個過程去訪問賦值的地址,使用這個變量,這個過程就叫做引用
在給變量賦值的時候,本質上是修改了數據的引用
a=1b=aa=2
?在這個賦值操作中,a的地址發生改變,但b沒有
學啥啥不會,作業咋學都不會
?1.
a=int(input("請輸入你想創建的寵物資料個數"))pets_list=[]print("創建寵物信息")for i in range(a): #自行輸入(寵物名字和主人名字) pet_name=input("請輸入寵物名字") name=input("請輸入主人名字") #現在將這些信息保存在字典中,字典的名字為這個寵物的名字 pet_name_dict={"pet_name":pet_name,"name":name} #自行創建一個寵物字典之后加入列表之中去 pets_list.append(pet_name_dict) #提示成功加入一個寵物字典 print("%s添加成功"%pet_name_dict["pet_name"]) print("功能:顯示全部")# 判斷是否有寵物字典記錄if len(pets_list) == 0: print("提示:沒有任何名片記錄")else:# 2. 顯示所有寵物字典 print("寵物/t/t主人") for pet_name_dict in pets_list: print("%s/t/t%s" % ( pet_name_dict["pet_name"], pet_name_dict["name"],))
2.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123080.html
摘要:后來知道有了院賽,學長說刷院和杭電就可,我就一直刷院,到最后比賽前院的前五十道基本做完,杭電也弄了十來道,就這樣草草參加比賽了。 博客主頁: https://b...
摘要:網上有很多前端的學習路徑文章,大多是知識點羅列為主或是資料的匯總,數據量讓新人望而卻步。天了解一個前端框架。也可以關注微信公眾號曉舟報告,發送獲取資料,就能收到下載密碼,網盤地址在最下方,獲取教程和案例的資料。 前言 好的學習方法可以事半功倍,好的學習路徑可以指明前進方向。這篇文章不僅要寫學習路徑,還要寫學習方法,還要發資料,干貨滿滿,準備接招。 網上有很多前端的學習路徑文章,大多是知...
摘要:對于沒有任何計算機基礎的我,面臨的挑戰很多非相關專業,去找計算機專業工作會有很多障礙。學習階段剛開始是學習語言,由于計算機專業大一就開始上課,所以我就去晚上去蹭語言的選修課,選修課老師講的比較淺,這也對我這個沒有一點基礎的人比較友好。 說起跨專業,可能有好多同學都望而生畏,總覺得別人計算機專業的學生學了三年才找工作,我跨專業還怎么比得過別人? 其實不是這樣的,覺得自己不行其實都是你還沒...
摘要:對于沒有任何計算機基礎的我,面臨的挑戰很多非相關專業,去找計算機專業工作會有很多障礙。學習階段剛開始是學習語言,由于計算機專業大一就開始上課,所以我就去晚上去蹭語言的選修課,選修課老師講的比較淺,這也對我這個沒有一點基礎的人比較友好。 說起跨專業,可能有好多同學都望而生畏,總覺得別人計算機專業的學生學了三年才找工作,我跨專業還怎么比得過別人? 其實不是這樣的,覺得自己不行其實都是你還沒...
摘要:對于沒有任何計算機基礎的我,面臨的挑戰很多非相關專業,去找計算機專業工作會有很多障礙。學習階段剛開始是學習語言,由于計算機專業大一就開始上課,所以我就去晚上去蹭語言的選修課,選修課老師講的比較淺,這也對我這個沒有一點基礎的人比較友好。 說起跨專業,可能有好多同學都望而生畏,總覺得別人計算機專業的學生學了三年才找工作,我跨專業還怎么比得過別人? 其實不是這樣的,覺得自己不行其實都是你還沒...
閱讀 1995·2021-11-23 10:08
閱讀 2325·2021-11-22 15:25
閱讀 3269·2021-11-11 16:55
閱讀 762·2021-11-04 16:05
閱讀 2575·2021-09-10 10:51
閱讀 704·2019-08-29 15:38
閱讀 1572·2019-08-29 14:11
閱讀 3480·2019-08-29 12:42