__call__
方法和可調用對象
凡是可以將 () 直接應用到自身并執行, 都稱為可調用對象.
注意:
- 可調用對象包括自定義的函數、Python 內置函數、以及本節所講的實例對象.
-
定義了
__call__()
的對象, 稱為“可調用對象”, 即該對象可以像函數一樣被調用. - 該方法使得實例對象可以像調用普通函數那樣, 以“對象名()”的形式使用
實操代碼
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 方法
注意:
-
@property
可以將一個方法的調用方式變成“屬性調用”. -
@property
主要用于幫助我們處理屬性的讀操作、寫操作 -
對于某一個屬性, 我們可以直接通過:
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
發布評論請先 登錄
相關推薦
評論