0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python面向?qū)ο笊罨ㄏ拢?/h1>

__call__方法和可調(diào)用對(duì)象

凡是可以將 () 直接應(yīng)用到自身并執(zhí)行, 都稱為可調(diào)用對(duì)象.

注意:

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

實(shí)操代碼

deff1():

print("f1")

f1()#本質(zhì)上也是調(diào)用了__call__()方法

classCar:

def__call__(self,age,money):

print("調(diào)用__call__()方法")

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

f2=Car()

f2(3,289000)#像函數(shù)那樣調(diào)用,本質(zhì)上也是調(diào)用了__call__()

@property 裝飾器

@property裝飾器相當(dāng)于在Java中實(shí)現(xiàn)了對(duì)屬性的get 方法

注意:

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

實(shí)操代碼

classEmployee:

def__init__(self,name,salary):

self.name=name

self.__salary=salary

@property#相當(dāng)于salary屬性的getter方法

defsalary(self):

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

returnself.__salary

@salary.setter

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

if0

self.__salary=salary

else:

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

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

print(emp1.salary)

emp1.salary=12580

print(emp1.salary)

關(guān)于None和判斷的總結(jié)

None是什么

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

實(shí)操代碼

obj=None

obj2=None

print(type(None))

print(id(None))

print(id(obj))

print(id(obj2))

"""輸出結(jié)果

'nonetype'>

140706372487160

140706372487160

140706372487160

"""

None和其他類型的比較

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

實(shí)操代碼

#None不是False,None不是0,None不是空字符串.None和任何其他的數(shù)據(jù)類型比較永遠(yuǎn)返回False.

a=None

ifaisNoneanda==None:

print("a是None")#會(huì)執(zhí)行

ifa==Falseora==0:

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

a=[]

b=()

c={}

d=""

e=0

f=None

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

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

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

#==和is判斷時(shí),空列表、空字符串不會(huì)自動(dòng)轉(zhuǎn)成False

ifa==Falseord==False:

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

if(e==False):

print("==時(shí),0會(huì)轉(zhuǎn)成False")

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4790

    瀏覽量

    68654
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84727
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python面向對(duì)象編程詳解

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

    labview面向對(duì)象編程

    點(diǎn)擊學(xué)習(xí)>>《龍哥手把手教你學(xué)LabVIEW視覺設(shè)計(jì)》視頻教程使用LabVIEW面向對(duì)象編程方法,對(duì)于大型測(cè)試應(yīng)用程序來講,面向對(duì)象相對(duì)于面向
    發(fā)表于 11-24 11:01

    3分鐘看懂Python面向對(duì)象

    Python雖然是解釋型語言,但從設(shè)計(jì)之初就已經(jīng)是一門面向對(duì)象的語言,對(duì)于Python來說一切皆為對(duì)象。正因?yàn)槿绱?,?/div>
    發(fā)表于 06-08 14:20

    LabVIEW面向對(duì)象的ActorFramework(2)

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

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

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

    談?wù)?b class='flag-5'>面向對(duì)象編程

    在工業(yè)自動(dòng)化領(lǐng)域,梯形圖邏輯仍然是最常用的編程語言之一,但對(duì)于更加復(fù)雜的控制對(duì)象面向對(duì)象編程不失為一種高效率的方式。下面先來談?wù)?b class='flag-5'>面向對(duì)象
    發(fā)表于 09-08 07:47

    面向對(duì)象編程總結(jié)

    如何從面向過程到面向對(duì)象OOP?面向對(duì)象是什么?有何特點(diǎn)?
    發(fā)表于 09-29 08:19

    面向對(duì)象編程介紹

    目錄一、面向對(duì)象編程介紹1.面向過程編程2.函數(shù)式編程3.面向對(duì)象編程二.面向
    發(fā)表于 12-13 07:22

    網(wǎng)絡(luò)講壇:面向對(duì)象的編程()-labview視頻教程

    網(wǎng)絡(luò)講壇:面向對(duì)象的編程()-labview視頻教程
    發(fā)表于 03-26 16:42 ?231次下載

    這可能是Python面向對(duì)象編程的最佳實(shí)踐

    本節(jié)介紹了attrs和cattrs兩個(gè)庫,讓實(shí)現(xiàn)Python面向對(duì)象編程不再難。
    的頭像 發(fā)表于 06-22 12:07 ?2687次閱讀

    利用Python和PyTorch處理面向對(duì)象的數(shù)據(jù)集

    本篇是利用 Python 和 PyTorch 處理面向對(duì)象的數(shù)據(jù)集系列博客的第 2 篇。 如需閱讀第 1 篇:原始數(shù)據(jù)和數(shù)據(jù)集,請(qǐng)參閱此處。 我們?cè)诘?1 部分中已定義 MyDataset 類,現(xiàn)在
    的頭像 發(fā)表于 08-25 15:30 ?2990次閱讀

    利用 Python 和 PyTorch 處理面向對(duì)象的數(shù)據(jù)集(2)) :創(chuàng)建數(shù)據(jù)集對(duì)象

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

    面向過程與面向對(duì)象的區(qū)別

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

    Python中的類和對(duì)象詳解

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

    Python面向對(duì)象深化(上)

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