精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python面向對象深化(下)

麥辣雞腿堡 ? 來源:python都知道 ? 作者:了不起 ? 2023-05-11 17:52 ? 次閱讀

__call__方法和可調用對象

凡是可以將 () 直接應用到自身并執行, 都稱為可調用對象.

注意:

  1. 可調用對象包括自定義的函數、Python 內置函數、以及本節所講的實例對象.
  2. 定義了__call__()的對象, 稱為“可調用對象”, 即該對象可以像函數一樣被調用.
  3. 該方法使得實例對象可以像調用普通函數那樣, 以“對象名()”的形式使用

實操代碼

deff1():

print("f1")

f1()#本質上也是調用了__call__()方法

classCar:

def__call__(self,age,money):

print("調用__call__()方法")

print("車齡:{0},金額:{1}".format(age,money))

f2=Car()

f2(3,289000)#像函數那樣調用,本質上也是調用了__call__()

@property 裝飾器

@property裝飾器相當于在Java中實現了對屬性的get 方法

注意:

  1. @property可以將一個方法的調用方式變成“屬性調用”.
  2. @property主要用于幫助我們處理屬性的讀操作、寫操作
  3. 對于某一個屬性, 我們可以直接通過:emp1.salary = 30000如上的操作讀操作、寫操作 但是這種做法不安全. 比如, 我需要限制薪水必須為 1-10000 的數字. 這時候我們就需要通過使用裝飾器@property來處理.

實操代碼

classEmployee:

def__init__(self,name,salary):

self.name=name

self.__salary=salary

@property#相當于salary屬性的getter方法

defsalary(self):

print("月薪為{0}, 年薪為{1}".format(self.__salary,12*self.__salary))

returnself.__salary

@salary.setter

defsalary(self,salary):#相當于salary屬性的setter方法

if0

self.__salary=salary

else:

print("薪水錄入錯誤!只能在0-1000000之間")

emp1=Employee("時間靜止",8848.48)

print(emp1.salary)

emp1.salary=12580

print(emp1.salary)

關于None和判斷的總結

None是什么

  • 與C和JAVA不同, python中是沒有 NULL 的, 取而代之的是 None . None 是一個特殊的常量, 表示變量沒有指向任何對象.
  • 在Python中, None 本身實際上也是對象, 有自己的類型 NoneType .
  • 你可以將 None 賦值給任何變量, 但我們不能創建 NoneType 類型的對象

實操代碼

obj=None

obj2=None

print(type(None))

print(id(None))

print(id(obj))

print(id(obj2))

"""輸出結果

'nonetype'>

140706372487160

140706372487160

140706372487160

"""

None和其他類型的比較

  • None不是False, None不是0, None不是空字符串. None和任何其他的數據類型比較永遠返回False
  • if語句判斷時,空列表[]、空字典{}、空元組()、0等一系列代表空和無的對象會被轉換成False
  • == 和 is 判斷時, 空列表、空字符串不會自動轉成 False

實操代碼

#None不是False,None不是0,None不是空字符串.None和任何其他的數據類型比較永遠返回False.

a=None

ifaisNoneanda==None:

print("a是None")#會執行

ifa==Falseora==0:

print("None不等于False")#不會被打印

a=[]

b=()

c={}

d=""

e=0

f=None

#if語句判斷時,空列表[]、空字典{}、空元組()、0等一系列代表空和無的對象會被轉換成False

if(nota)and(notb)and(notc)and(notd)and(note)and(notf):

print("if判斷時,空列表[]、空字符串、0、None等代表空和無的對象會被轉換成False")

#==和is判斷時,空列表、空字符串不會自動轉成False

ifa==Falseord==False:

print("==時, 空列表、空字符串不是False!")#不會執行

if(e==False):

print("==時,0會轉成False")

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4671

    瀏覽量

    67770
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評論

    相關推薦

    Python面向對象編程詳解

    一般編程可分為面向過程編程,和面向對象編程。Python面向對象編程,與Java的
    發表于 09-04 16:35 ?454次閱讀
    <b class='flag-5'>Python</b>的<b class='flag-5'>面向</b><b class='flag-5'>對象</b>編程詳解

    labview面向對象編程

    點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程使用LabVIEW面向對象編程方法,對于大型測試應用程序來講,面向對象相對于面向
    發表于 11-24 11:01

    3分鐘看懂Python面向對象

    Python雖然是解釋型語言,但從設計之初就已經是一門面向對象的語言,對于Python來說一切皆為對象。正因為如此,在
    發表于 06-08 14:20

    LabVIEW面向對象的ActorFramework(2)

    二、為什么要學習面向編程?面向對象編程,如果將上文推薦的兩本書讀完后,基本上也就有了答案。從從自我產品開發的經驗中,理解為可以迅速解決中大型程序需求變化時,在不影響其他程序功能的情況
    發表于 02-18 09:20

    面向對象編程及其三大特性 精選資料分享

    編程語言分為面向過程編程、函數式編程和面向對象編程。其實python就是一種面向對象編程,那么我
    發表于 07-21 08:38

    談談面向對象編程

    在工業自動化領域,梯形圖邏輯仍然是最常用的編程語言之一,但對于更加復雜的控制對象,面向對象編程不失為一種高效率的方式。下面先來談談面向對象
    發表于 09-08 07:47

    面向對象編程總結

    如何從面向過程到面向對象OOP?面向對象是什么?有何特點?
    發表于 09-29 08:19

    面向對象編程介紹

    目錄一、面向對象編程介紹1.面向過程編程2.函數式編程3.面向對象編程二.面向
    發表于 12-13 07:22

    網絡講壇:面向對象的編程()-labview視頻教程

    網絡講壇:面向對象的編程()-labview視頻教程
    發表于 03-26 16:42 ?231次下載

    這可能是Python面向對象編程的最佳實踐

    本節介紹了attrs和cattrs兩個庫,讓實現Python面向對象編程不再難。
    的頭像 發表于 06-22 12:07 ?2612次閱讀

    利用Python和PyTorch處理面向對象的數據集

    本篇是利用 Python 和 PyTorch 處理面向對象的數據集系列博客的第 2 篇。 如需閱讀第 1 篇:原始數據和數據集,請參閱此處。 我們在第 1 部分中已定義 MyDataset 類,現在
    的頭像 發表于 08-25 15:30 ?2893次閱讀

    利用 Python 和 PyTorch 處理面向對象的數據集(2)) :創建數據集對象

    本篇是利用 Python 和 PyTorch 處理面向對象的數據集系列博客的第 2 篇。我們在第 1 部分中已定義 MyDataset 類,現在,讓我們來例化 MyDataset 對象
    的頭像 發表于 08-02 17:35 ?832次閱讀
    利用 <b class='flag-5'>Python</b> 和 PyTorch 處理<b class='flag-5'>面向</b><b class='flag-5'>對象</b>的數據集(2)) :創建數據集<b class='flag-5'>對象</b>

    面向過程與面向對象的區別

    說起面向對象,大家可能會想到其他的,但是此對象非彼對象哈哈,不必驚慌,也特別好搞定。 在聽到面向
    的頭像 發表于 02-15 11:10 ?3726次閱讀
    <b class='flag-5'>面向</b>過程與<b class='flag-5'>面向</b><b class='flag-5'>對象</b>的區別

    Python中的類和對象詳解

    Python 是一種面向對象的編程語言,它支持類和對象。類是一種用戶自定義的數據類型,用于定義對象的屬性和方法。
    的頭像 發表于 04-20 16:53 ?965次閱讀

    Python面向對象深化(上)

    前言 哈嘍, 大家好, 我是了不起! 歡迎大家來觀看了不起的冒險之旅. 為了方便起見, 文中以小知為名. 講述了不起在Python異世界的冒險之旅. 天空之城是座高聳云端的城堡. 位于西海岸附近
    的頭像 發表于 05-11 17:51 ?523次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>面向</b><b class='flag-5'>對象</b><b class='flag-5'>深化</b>(上)