__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< salary < 1000000:
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文章
4708浏览量
68176 -
python
+关注
关注
54文章
4763浏览量
84339
发布评论请先 登录
相关推荐
评论