函数使用方式,函数使用方法详解

作者: 网络应用  发布:2019-10-03

hasattr(object, name)

hasattr(object, name)
推断一个对象里面是否有name属性或许name方法,重回BOOL值,有name性子再次回到True, 不然赶回False。
亟需小心的是name要用括号括起来

认清叁个对象里面是或不是有name属性可能name方法,重临BOOL值,有name本性重返True, 不然赶回False。

图片 1

供给潜心的是name要用括号括起来

 1 >>> class test():
 2 ...     name="xiaohua"
 3 ...     def run(self):
 4 ...             return "HelloWord"
 5 ...
 6 >>> t=test()
 7 >>> hasattr(t, "name") #判断对象有name属性
 8 True
 9 >>> hasattr(t, "run")  #判断对象有run方法
10 True
11 >>>
 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "name") #判断对象有name属性
 True
 >>> hasattr(t, "run") #判断对象有run方法
 True
 >>>

图片 2

getattr(object, name[,default])

getattr(object, name[,default])
获得对象object的属性或然措施,假设存在打字与印刷出来,假诺不设有,打字与印刷出私下认可值,暗中认可值可选。
亟待专心的是,即使是再次来到的靶子的主意,再次来到的是方法的内部存款和储蓄器地址,假设急需周转这么些法子,
可以在背后增添一对括号。

赢得对象object的习性大概措施,要是存在打字与印刷出来,若是不设有,打字与印刷出暗中同意值,暗中认可值可选。

图片 3

亟需在乎的是,如若是回来的对象的章程,重回的是艺术的内部存款和储蓄器地址,即使须求周转这一个格局,能够在末端增多一对括号。

 1 >>> class test():
 2 ...     name="xiaohua"
 3 ...     def run(self):
 4 ...             return "HelloWord"
 5 ...
 6 >>> t=test()
 7 >>> getattr(t, "name") #获取name属性,存在就打印出来。
 8 'xiaohua'
 9 >>> getattr(t, "run")  #获取run方法,存在就打印出方法的内存地址。
10 <bound method test.run of <__main__.test instance at 0x0269C878>>
11 >>> getattr(t, "run")()  #获取run方法,后面加括号可以将这个方法运行。
12 'HelloWord'
13 >>> getattr(t, "age")  #获取一个不存在的属性。
14 Traceback (most recent call last):
15   File "<stdin>", line 1, in <module>
16 AttributeError: test instance has no attribute 'age'
17 >>> getattr(t, "age","18")  #若属性不存在,返回一个默认值。
18 '18'
19 >>>
 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "name") #获取name属性,存在就打印出来。
 'xiaohua'
 >>> getattr(t, "run") #获取run方法,存在就打印出方法的内存地址。
 <bound method test.run of <__main__.test instance at 0x0269C878>>
 >>> getattr(t, "run")() #获取run方法,后面加括号可以将这个方法运行。
 'HelloWord'
>>> getattr(t, "age") #获取一个不存在的属性。
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age","18") #若属性不存在,返回一个默认值。
 '18'
 >>>

图片 4

setattr(object, name, values)

 

给指标的特性赋值,若属性不设有,先创设再赋值。

setattr(object, name, values)
给目的的习性赋值,若属性官样文章,先创制再赋值。

 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> hasattr(t, "age")  #判断属性是否存在
 False
 >>> setattr(t, "age", "18")  #为属相赋值,并没有返回值
 >>> hasattr(t, "age")  #属性存在了
 True
 >>>

图片 5

一种归纳的用法是:判定叁个对象的性质是或不是存在,若不设有就增多该属性。

 1 >>> class test():
 2 ...     name="xiaohua"
 3 ...     def run(self):
 4 ...             return "HelloWord"
 5 ...
 6 >>> t=test()
 7 >>> hasattr(t, "age")   #判断属性是否存在
 8 False
 9 >>> setattr(t, "age", "18")   #为属相赋值,并没有返回值
10 >>> hasattr(t, "age")    #属性存在了
11 True
12 >>>
 >>> class test():
 ...   name="xiaohua"
 ...   def run(self):
 ...       return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "age")  #age属性不存在
 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性
 '18'
 >>> getattr(t, "age") #可检测设置成功
 '18'
 >>>

图片 6

 

一种归纳的用法是:判别三个目标的性质是或不是留存,若荒诞不经就增添该属性。

图片 7

 1 >>> class test():
 2 ...     name="xiaohua"
 3 ...     def run(self):
 4 ...             return "HelloWord"
 5 ...
 6 >>> t=test()
 7 >>> getattr(t, "age")    #age属性不存在
 8 Traceback (most recent call last):
 9   File "<stdin>", line 1, in <module>
10 AttributeError: test instance has no attribute 'age'
11 >>> getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性
12 '18'
13 >>> getattr(t, "age")  #可检测设置成功
14 '18'
15 >>>

图片 8

 

本文由王中王开奖结果发布于网络应用,转载请注明出处:函数使用方式,函数使用方法详解

关键词: