python函数是数据吗的简单介绍( 四 )


先看下dir的帮助 。
dir列出给定对象的属性或者是从这个对象能够达到的对象 。
回到print dir(call)方法的输出,看到,call方法 , 有输出的那么多个属性 。其中就包含了__get__函数 。但是却没有__set__和__del__函数 。所以所有的类成员函数都是非数据描述符 。
看一个实例数据掩盖非数据描述符的例子:
[python] view plain copy
'''''
Created on 2013-3-29
@author: naughty
'''
class simpleDescriptor(object):
def __get__(self,obj,type=None) :
return "get",self,obj,type
class D(object):
foo=simpleDescriptor()
d=D()
print d.foo
d.foo=15
print d.foo
看输出:
('get', __main__.simpleDescriptor object at 0x02141190,
__main__.D object at 0x025CAF50, class '__main__.D')
15
可见,实例数据掩盖了非数据描述符 。
如果改成数据描述符,那么就不会被覆盖了 。看下面:
[python] view plain copy
'''''
Created on 2013-3-29
@author: naughty
'''
class simpleDescriptor(object):
def __get__(self,obj,type=None) :
return "get",self,obj,type
def __set__(self,obj,type=None) :
pass
def __del__(self,obj,type=None) :
pass
class D(object):
foo=simpleDescriptor()
d=D()
print d.foo
d.foo=15
print d.foo
代码的输出如下:
[plain] view plain copy
('get', __main__.simpleDescriptor object at 0x01DD1190, __main__.D object at 0x0257AF50, class '__main__.D')
('get', __main__.simpleDescriptor object at 0x01DD1190, __main__.D object at 0x0257AF50, class '__main__.D')
由于是数据描述符,__set __函数体是pass , 所以两次输出都是同样的内容 。
最后看下__getatrr__方法 。它的标准定义是:__getattr__(self,attr),其中attr是属性名
python中提供的数据类型转换函数有哪些,作用是什么?作用就是把合理的数据转换为需要的类型 。int()整数,float()浮点数,str()字符串,list()列表,tuple()元组,set()集合……
比如a='12'这个是字符串类型,用int函数a=int(a)这时变量a就是整型 , 字符串'12'变为了整数12 。Python没有变量声明的要求,变量的属性在赋值时确定,这样变量的类型就很灵活 。
有一种题目判断一个整数是否回文数 , 用字符串来处理就很简单
a=1234321#整数
if str(a)==str(a)[::-1]:#借助字符串反转比较就可以确定是否回文数 。
还比如元组b=(1,3,2,4),元组是不可以更新删除排序成员的,但是列表是可以的,通过列表函数进行转换来实现元组的更新删除和排序 。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
这时得到的元组b就是一个升序的元组(1,2,3,4)
再比如你要输入创建整数列表或者整数元组基本上写法相同,就是用对应的函数来最后处理 。
ls=list(map(int,input().split()))#这个就是列表
tup=tuple(map(int,input().split()))#这个就是元组
再比如有个叫集合的 , 集合有唯一性,可以方便用来去重 。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通过set()去重后,现在的ls里就是[1,2,3]去重后的列表 。
【python函数是数据吗的简单介绍】python函数是数据吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、python函数是数据吗的信息别忘了在本站进行查找喔 。

推荐阅读