Python常用的内置函数

一  反射相关

  1 hasattr   根据字符串的形式 , 去判断对象中是否有成员

hasattr(object,name)
判断对象object是否包含名为name的特性(hasattr是通过调用getattr(object,name))是否抛出异常来实现的。
参数object:对象
参数name:特性名称
>>> hasattr(list, 'append')
True
>>> hasattr(list, 'add')
False
View Code

 

  2 getattr  根据字符串的形式,去对象中找成员.   第一个参数是(模块或对象或类),  第二个参数是(用户输入或值)getattr(object, name [, defalut])获取对象object名为name的特性,如果object不包含名为name的特性,将会抛出AttributeError异常;如果不包含名为name的特性

且提供default参数,将返回default。
参数object:对象
参数name:对象的特性名
参数default:缺省返回值
>>> class test():
...  name="ming"
...   def run(self):
...     return "Hello World"
...
>>> t=test()
>>> getattr(t, "name") #获取name属性,存在就打印出来。
'ming'
>>> getattr(t, "run") #获取run方法,存在就打印出方法的内存地址。
<bound method test.run of <__main__.test instance at 0x0269C878>>
>>> ret = getattr(t, "run")() #获取run方法,后面加括号可以将这个方法运行。
>>> print(ret)
'Hello World' >>> 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' >>>

 

 

  3 setattr   根据字符串的形式 , 动态的设置一个成员(在内存中)  (三个参数, 第一个参数是要设置的变量, 第三个变量是要设置的值)

给对象的属性赋值,若属性不存在,先创建再赋值
>>> class test():
...     name="ming"
...     def run(self):
...             return "Hello World"
...
>>> t=test()
>>> hasattr(t, "age")   #判断属性是否存在
False
>>> setattr(t, "age", "18")   #为属相赋值,并没有返回值
>>> hasattr(t, "age")    #属性存在了
True
View Code

 

  4 delattr     

综合使用

>>> class test():
       name="ming"
       def run(self):
             return "Hello World">>> t=test()
>>> getattr(t, "age")    #age属性不存在
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'age'


>>> if getattr(t ,"age") is none: #当获取到这个age值为空时,需要给这个age重新赋值
    setattr(t,"age","18")
'True'

>>>getattr(t,"age")
'18'

 

 

 

二 基础数据类型相关

  1 bool     

  2 int

  3 float

  4 complex   复数   

complex(5,6)    

(5+6j)

  5 bin  整型转换为二进制

  6 oct  整型转换为八进制

  7 hex  整型转换为十六进制

  8 abs  求绝对值

  9 divmod  (除,余数)

  10 round     (值,小数后几位)

 ret =  round(4.563111347,3)    

 print(ret)

 4.563

 

  11 pow  幂运算

ret = pow(2,3)
print(ret)

8

 

  12 sum  

  13 max

  14 min

  15 list 

  16 tuple

  17 reversed  

       18  slice   和切片有关

  19 str

  20 format    

  21 bytes

  22 bytearry

  23 memoryview

  24 ord

  25 chr

  26 ascill

  27 repr

  28 dict

  29 set()

  30 frozenset

  31 len

  32 sorted

a = [1,3,5,-2,-4,-6]
b = sorted(a,key=abs)
print(a)
print(b)

  33 enumerate   

 a = enumerate()  返回一个元祖  a[0]序列号,a[1]数据

  34 all

接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False

>>> tmp_1 = ['python',123]
>>> all(tmp_1)
True
>>> tmp_2 = []
>>> all(tmp_2)
True
>>> tmp_3 = [0]
>>> all(tmp_3)
False

  35 any

接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False

a = []
ret = any(a)
print(ret)
b = [1]
ret1 = any(b)
print(ret1)

  36 zip

list1 = [1, 2, 3, 4]
list2 = ["a", "b", "c"]
s = zip(list1, list2)
print(list(s)) 

  37 filter

filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list

def is_odd(x):
    return x % 2 == 1
然后,利用filter()过滤掉偶数:

list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))

  38 map

map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

>>> L = [1,2,3,4,] 
>>> def pow2(x): 
... return x*x 
... 
>>> list(map(pow2,L))
[1, 4, 9, 16] 

 

三 作用域相关

  1 locals   获取执行本方法所在命名空间内的局部变量的字典

  2 globals  获取全局变量的字典

四 面向对象相关

  1 type  元类,类的最高层

  2 object

  3 classmethod    类方法,用来修改类变量的

  4 staticmethod    静态方法,用来处理一些和操作类无关的事

  5 property    可以像调用一个变量一样调用一个方法

 class Pager:
     def __init__(self,page):
         self.page = page
       self.page_num = 12

    @property
     def start(self):
         ret = (self.page - 1) * self.page_num
         return ret
     @property
     def end(self):
         ret = self.page * self.page_num
        return ret

 p = Pager(5)
 # print(p.start())
 # print(p.end())
 print(p.start)
 print(p.end)

 

  6  vars 

class My():
    'Test'
    def __init__(self,name):
        self.name=name

    def test(self):
        print self.name

        
vars(My)#返回一个字典对象,他的功能其实和  My.__dict__  很像 

  7 super  在多继承中,可以保证顶层父类只被调用一次 ,用 _ _mro_ _ 查看多继承规律时,遵循深度优先原则

  8 issubclass

检查第一个参数是否是第二个参数的子子孙孙类    

返回  :   是一个布尔值

class Base(object):
    pass

class Foo(Base):
    pass

class Bar(Foo):
    pass

print(issubclass(Bar,Base))  # 检查第一个参数是否是第二个参数的子子孙孙类

  9 isinstance

检查第一个参数(对象) 是否是第二个参数(类及父类)的实例.

返回值:  布尔型

class Base(object):
    pass

class Foo(Base):
    pass

obj = Foo()

print(isinstance(obj,Foo))
print(isinstance(obj,Base))

判断一个数据是什么数据类型 a
= "python" ret = isinstance(a,str) print(a)

 

五 迭代/生成器相关

  1 next

  2 iter  

  3 range

range 是一个生成器,他只用来存储数据的生成方式,而不直接存储数据
# 列表解析
sum([i for i in range(100000000)])# 内存占用大,机器容易卡死
 
# 生成器表达式
sum(i for i in range(100000000))# 几乎不占内存

六 其他

  字符串类型代码执行相关  

  1 eval

eval() 将字符串类型的代码执行并返回结果

print(eval('1+2+3+4'))

还可以用来操作文件,将文件里面的内容转化为字典,方便调用

 

 
 

  2 exec

exec()将自字符串类型的代码执行

print(exec("1+2+3+4"))
exec("print('hello,world')")

  3 compile

参数说明:

    1> 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。  

    2>参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。  

    3> 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表       达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。

 

  输入/输出相关

  4 input

  5 print

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
      print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
      file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件
      sep: 打印多个值之间的分隔符,默认为空格
      end: 每一次打印的结尾,默认为换行符
      flush: 立即把内容输出到流文件,不作缓存
    """

    file() 和文件有关的关键字

    f = open('tmp_file','w')
    print(123,456,sep=',',file = f,flush=True)
    打印进度条             
import time       for i in range(0,101,2):       time.sleep(0.1)       char_num = i//2 #打印多少个'*'       per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)       print(per_str,end='', flush=True)       #小越越 : \r 可以把光标移动到行首但不换行

  内存相关

  6 id

  7 hash

  文件操作相关

  8 open

共有六种操作文件的方分别为:  r、w、a、r+、w+、a+  ,每一种都可以用二进制文件来操作:rb、wb、ab、rb+、wb+、ab+,也可以指定编码格式

  模块相关

  9 __import__

  帮助相关

  10 help

  调用相关

  11 callable      检测一个对象能否被调用

  查看内置属性和方法

  12 dir

dir(list)
dir(a)
dir(123)

 

内置函数官方文档        https://docs.python.org/3/library/functions.html#object

 

转载于:https://www.cnblogs.com/wangxiongbing/p/9818337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值