tft每日頭條

 > 生活

 > python對象基礎組成

python對象基礎組成

生活 更新时间:2024-07-23 12:12:58

使用對象組織數據

1.在程序中設計表格,我們稱之為:設計類(class)

class Student: name = None # 記錄學生姓名

2.在程序中打印表格,我們稱之為:創建對象

# 基于類創建對象 stu_1 = Student() stu_2 = Student()

3.在程序中填寫表格,我們稱之為:對象屬性賦值

stu_1.name = "小蘭花" # 為學生1對象賦予名稱屬性值 stu_2.name = "長珩" # 為學生2對象賦予名稱屬性值

  • 類的屬性,稱之為:成員變量
  • 類的行為,稱之為:成員方法

成員方法的定義語法

def 方法名(self, 形參1,……,形參N):

方法體

類隻是一種程序内的“設計圖紙”,需要基于圖紙生産實體(對象),才能正常工作

這種套路,稱之為:面向對象編程

屬性(成員變量)的賦值:

python類可以使用 __init__()方法,稱之為構造方法。

  • 在創建類對象(構造類)的時候,會自動執行。
  • 在創建類對象的時候,将傳入參數自動傳遞給__init__方法使用。
  • 需要使用self關鍵字

練習:學生信息錄入

開學了有一批學生信息需要錄入系統,請設計一個類,記錄學生的:

姓名、年齡、地址,這3類信息

請實現:

通過for循環,配合input輸入語句,并使用構造方法,完成學生信息的鍵盤錄入

輸入完成後,使用print語句,完成信息的輸出

class Student: # 屬性 name = None age = None address = None # 構造方法 def __init__(self): self.name = input("請輸入學生姓名:") self.age = int(input("請輸入學生年齡:")) self.address = input("請輸入學生地址:") for item in range(1,11): print(f"當前錄入第{item}位學習信息,總共需錄入10位學生信息") stu = Student() print(f"學生{item}信息錄入完成,信息為:[學生姓名:{stu.name},年齡:{stu.age},地址:{stu.address}]")

運行:

python對象基礎組成(python初識對象)1

魔術方法

__str__ 字符串方法

控制類轉換為字符串的行為。

__lt__ 小于符号比較方法

同時完成:小于符号和大于符号2種比較。

__le__ 小于等于符号比較方法

同時完成:小于等于符号和大于等于符号2種比較。

__eq__ 比較運算符實現方法

用于兩個類對象進行相等比較。

面向對象包含3大主要特性:

  • 封裝
  • 繼承
  • 多态

封裝練習:設計帶有私有成員的手機

設計一個手機類,内部包含:

私有成員變量:__is_5g_enable,類型bool,True表示開啟5g,False表示關閉5g

私有成員方法:__check_5g(),會判斷私有成員__is_5g_enable的值

若為True,打印輸出:5g開啟

若為False,打印輸出:5g關閉,使用4g網絡

公開成員方法:call_by_5g(),調用它會執行

調用私有成員方法:__check_5g(),判斷5g網絡狀态

打印輸出:正在通話中

運行結果:5g關閉,使用4g網絡

正在通話中

class Phone(): # 提供私有成員變量 __is_5g_enable = True # 提供私有成員方法 def __check_5g(self): if self.__is_5g_enable: print("5g開啟") else: print("5g關閉,使用4g網絡") # 提供公開成員方法 def call_by_5g(self): self.__check_5g() print("正在通話中") phone = Phone() phone.call_by_5g()

運行:

python對象基礎組成(python初識對象)2

單繼承 class 類名(父類名)

多繼承 class 類名(父類1,父類2,……,父類N)

pass 表示空,用來保證類定義的完整性

調用父類同名成員

方式1:調用父類成員

使用成員變量:父類名.成員變量

使用成員方法:父類名.成員方法(self)

方式2:使用super()調用父類成員

使用成員變量:super().成員變量

使用成員方法:super().成員方法()

變量類型注解

1.變量:類型

2.注釋中寫 # type:類型

函數(方法)類型注解-形參注解

def 函數方法名(形參名:類型,形參名:類型,……)

pass

函數(方法)類型注解-返回值注解

def 函數方法名(形參名:類型,形參名:類型,……) -> 返回值類型:

pass

聯合類型注解

from typing import Union

Union[類型,……,類型]

多态:

同樣的行為(函數),傳入不同的對象,得到不同的狀态

多态常作用在繼承關系上

函數(方法)形參聲明接收父類對象

實際傳入父類的子類對象進行工作

抽象類:含有抽象方法的類稱之為抽象類

抽象方法:方法體是空實現的(pass)稱之為抽象方法

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved