1. 程式人生 > >python入門學習:8.類

python入門學習:8.類

python入門學習:8.類

關鍵點:

8.1 建立和使用類8.2 使用類和例項8.3 繼承8.4 匯入類

8.1 建立和使用類

  面向物件程式設計是最有效的軟體編寫方法之一。在面向物件程式設計中,你編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。根據類來建立物件被稱為例項化,這讓你能夠使用類。
8.1.1 建立dog類
  下面建立一個dog類:

 1calss Dog():
2
3    def __init__(self,name,age):
4        self
.name = name
5        self.age = age
6
7    def sit(self):
8        print(self.name.title() + " is now sitting.")
9
10    def roll_over
(self)
:
11        print(self.name.title() + " rolled over!")
  • 方法__init__():

  __init__()是一個特殊的方法,每當根據Dog類建立新例項時,python都會自動執行它。在這個方法中開頭和結尾都是兩個下劃線,這是python的約定俗稱。其中__init__()函式的定義中形參self是必不可少的,還必須位於其他引數前面。python呼叫__init__()建立Dog類例項時將自動傳入實參self,每個與類相關聯的方法呼叫都自動傳入實參self,它是一個指向例項化本身的引用,然例項能夠訪問類中的屬性和方法。

  • 在python2.7中建立類:
      在python2.7中建立類時,需要做些修改--在括號內包含單詞object
1class ClassName(object):
2    --snip--

8.1.2 根據類建立例項
  這裡使用的是前面建立的Dog類。我們建立一個例項my_dog,呼叫__init__()方法,並設定屬性name和age。方法__init__()並未顯示包含return語句,但是python自動返回一個表示小狗的例項給my_dog

1class Dog():
2    -- snip --
3
4my_dog = Dog('willie',6)#建立一個例項
5print("My dog's name is " + my_dog.name.title()+".")
6print("My dog's age is " + str(my_dog.age)+".")
  • 訪問屬性:
    my_dog.name
  • 呼叫方法:
    my_dog.sit()
    mt_dog.roll_over()
  • 建立多個例項
1my_dog = Dog('willie',6)#建立一個例項
2you_dog = Dog('lucy',5)#建立一個例項

8.2 使用類和例項

8.2.1 Car類
  下面編寫一個汽車類

 1class Car():
2
3    def __init__(self,make,model,year):
4        self.make = make
5        self.model = model
6        self.year = year
7
8    def get_descriptive_name(self):
9        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
10        return long_name.title()
11
12my_new_car = Car('audi','a4',2016)
13print(my_new_car.get_descriptive_name())

8.2.2 修改屬性的值

  • 直接修改屬性值
 1class Car():
2
3    def __init__(self,make,model,year):
4        self.make = make
5        self.model = model
6        self.year = year
7        self.odometer_reading = 0
8
9    def get_descriptive_name(self):
10        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
11        return long_name.title()
12    def read_odometer(self):
13        print("This car has " + str(self.odometer_reading) + " miles on it.)
14my_new_car = Car('audi','a4',2016)
15print(my_new_car.get_descriptive_name())
16my_new_car.odometer_reading = 23   #直接修改
17my_new_car.read_odometer()
18

  • 通過方法修改屬性值
 1class Car():
2
3    def __init__(self,make,model,year):
4        self.make = make
5        self.model = model
6        self.year = year
7        self.odometer_reading = 0;
8
9    def get_descriptive_name(self):
10        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
11        return long_name.title()
12
13    def read_odometer(self):
14        print("This car has " + str(self.odometer_reading)+ " miles on it.")
15
16    def update_odometer(self,mileage):
17        self.odometer_reading = mileage
18
19my_new_car = Car('audi','a4',2016)
20
21print(my_new_car.get_descriptive_name())
22#my_new_car.odometer_reading = 23
23my_new_car.update_odometer(23)   #通過方法修改屬性
24my_new_car.read_odometer()

8.3 繼承

  一個類繼承另一個類時,它將自動得到另一個類的所有屬性和方法;原有的類稱為父類,而新類稱為子類。子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法。
8.3.1 子類的方法__init__()

  建立子類的例項時,python首先需要完成的任務是給父類的所有屬性賦值。為此,子類的方法__init__()需要父類施以援手。

 1class Car():
2
3    def __init__(self,make,model,year):
4        self.make = make
5        self.model = model
6        self.year = year
7        self.odometer_reading = 0;
8
9    def get_descriptive_name(self):
10        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
11        return long_name.title()
12
13    def read_odometer(self):
14        print("This car has " + str(self.odometer_reading)+ " miles on it.")
15
16    def update_odometer(self,mileage):
17        self.odometer_reading = mileage
18
19class ElectricCar(Car):    #繼承Car
20    def __init__(self,make,model,year):
21        #初始化父類的屬性
22        super().__init__(make,model,year)  #關聯父類和子類
23
24my_tesla = ElectricCar('tesla','model s',2016)
25print(my_tesla.get_descriptive_name())

8.3.2 給子類定義屬性和方法
  給子類新增新的屬性和方法

 1class Car():
2
3    def __init__(self,make,model,year):
4        self.make = make
5        self.model = model
6        self.year = year
7        self.odometer_reading = 0;
8
9    def get_descriptive_name(self):
10        long_name = str(self.year) + 

相關推薦

python入門學習8.

python入門學習:8.類 關鍵點:類 8.1 建立和使用類8.2 使用類和例項8.3 繼承8.4 匯入類 8.1 建立和使用類   面向物件程式設計是最有效的軟體編寫方法之一。在面向物件程式設計中,你編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。根據類來建

Python入門學習1.變量和簡單的數據

import word python使用 com 其中 小數位 小數 ring 很多 python入門學習:1.變量和簡單的數據類型 關鍵點:變量、字符串、數字 1.1 變量的命名和使用1.2 字符串1.3 數字1.4 註釋 1.1 變量的命名和使用 ??變量,顧名思

Python入門學習1.變數和簡單的資料型別

python入門學習:1.變數和簡單的資料型別 關鍵點:變數、字串、數字 1.1 變數的命名和使用1.2 字串1.3 數字1.4 註釋 1.1 變數的命名和使用   變數,顧名思義是一個可變的量,每個變數都儲存一個值--與變數關聯的資訊。 1message =

python入門學習2.列表簡介

python入門學習:2.列表簡介 關鍵點:列表 2.1 列表是什麼2.2 修改、新增和刪除元素2.3 組織列表 2.1 列表是什麼   列表,是由一系列按特定順序排列的元素組成。你可以建立包含字母表中所有字母、數字0~9或所有家庭成員姓名的列表;也可以將任何東西加入列表中

python入門學習3.操作列表

python入門學習:3.操作列表 關鍵點:列表 3.1 遍歷整個列表3.2 建立數值列表3.3 使用列表3.4 元組 3.1 遍歷整個列表   迴圈這種概念很重要,因為它是計算機自動完成重複工作的常見方式之一。下面使用for迴圈來遍歷。  注意for迴圈的迴圈體可以包含多

python入門學習5.字典

python入門學習:5.字典 關鍵點:字典 5.1 使用字典5.2 遍歷字典5.3 巢狀 5.1 使用字典   在python中字典是一系列鍵-值對。每個鍵都和一個值關聯,你可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字串、列表乃至字典。在python中,字

python入門學習7.函式

python入門學習:7.函式 關鍵點:函式 7.1 定義函式7.2 傳遞實參7.3 返回值7.4 傳遞列表7.5 傳遞任意數量的實參7.6 將函式儲存在模組中 7.1 定義函式   使用關鍵字def告訴python要定義一個函式,緊接著跟著函式名,冒號。後面的縮排構成函式

python入門學習9.檔案和異常

python入門學習:9.檔案和異常 關鍵點:檔案、異常 9.1 從檔案中讀取資料9.2 寫入檔案9.3 異常9.4 儲存資料 9.1 從檔案中讀取資料 9.1.1 讀取整個檔案  首先建立一個pi_digits.txt檔案,內容任意填寫,儲存在當前目錄下。 1with

Python入門學習筆記————11 (與物件)

class Student (): name = 'goudan' age = 18   Student.__dict__ ​ goudan = Student() goudan.__dict__ Out[38]: {} 類和物件的

Python入門學習筆記————14(相關內容)

類的成員描述符(屬性) 類的成員描述符是為了在類的成員屬性進行相關操作而創造的一種方式 get : 獲取屬性的操作 set : 修改或新增屬性的操作 delete : 刪除屬性的操作 三種方法使用成員描述符 使用類實現

Python入門學習筆記————15(完結)

##變數的三種用法 class A (): def __init__(self): self._name = 'haha'   a = A() #屬性的三種用法 #1.賦值 #2.讀取 #3.刪除 a.name = "狗蛋"

Python學習8.小項目之登錄註冊驗證

break exc spa utf spl 代碼實現 put 簡介 pri 簡介   本次項目登錄註冊驗證是對之前學習知識點的加深學習,這次項目的練習的知識點有函數、判斷語句、循環語句、文件操作等。 項目流程   運行代碼之後,輸出登錄或者註冊選項。   當選擇登錄之後

Python入門學習筆記(七) -

學習內容 如何編寫類並建立其例項,如何使用屬性在類中儲存資訊,以及如何編寫方法,以讓類具備所需的行為。如何編寫方法 __init__() ,以便根據類建立包含所需屬性的例項。 如何修改例項的屬性 —— 包括直接修改以及通過方法進行修改。 使用 繼承 簡化相關類的建立工作;將一個類的例項用作另一

微控制器入門學習筆記8STM32微控制器使用

經常會在某個QQ群裡看見某人的QQ暱稱的名字"不會32絕不改名",其實無論會不會,之後名稱都改了。 STM32微控制器在我看來就三部分組成:各部分的初始化,中斷的使用,Main函式內的程式設計。 大多數人看STM32韌體庫手冊或者是STM32暫存器手冊,最後用到的其實也就是各部分的初始化。隨著時代的進步,

Python基礎學習語法規則

 【類】 一、定義方式: class 類名(object): 二、呼叫方式: 1、類名() 2、物件 = 類名()          #當一個變數 等於 一個類名()  #時它就叫物件 三、方法: 1、公有方法() #方法跟函式基本是類似,不同之處在

8】caffe的python介面學習caffemodel中的引數及特徵的抽取

如果用公式  y=f(wx+b) 來表示整個運算過程的話,那麼w和b就是我們需要訓練的東西,w稱為權值,在cnn中也可以叫做卷積核(filter),b是偏置項。f是啟用函式,有sigmoid、relu等。x就是輸入的資料。 資料訓練完成後,儲存的caffemodel裡面,

Python入門學習筆記————13(繼承,多型,相關函式)

#父類 class A (): pass class B (A): pass print(A.__mro__) print(B.__mro__) (<class '__main__.A'>, <class 'object'>) (&

python機器學習K-means聚演算法

為了更好構建關於機器學習的整體架構,多快好省的學好機器學習,計劃提綱挈領的總結一遍,從演算法的執行流程、虛擬碼流程構建、python程式碼實現、呼叫sklearn機器學習庫相關函式實現功能等方面論述,以便以後自己複習和備查,下面先從k-means演算法開始。 一

python入門系列Python數據

代碼 append() 單位 shuff 資料 now() 查找 lse 嚴格 整數 二進制 n1 = 0b1010 八進制 n2 = 0o567 十六進制 n3 = 0xfdc2浮點數 一般形式 n1 = 3.14 科學計數法 n2, n3 = 3.2e6, 1.2e-3

Java學習集合2

取出 手寫 string mov 利用 system 映射 獲取 和equal Set HashSet 特點:元素唯一,但是無序。 如何保證元素的唯一性的呢(分析源碼)?  通過簡單的分析,我們知道HashSet集合保證元素的唯一性和add()方法相關。  如何我們想深