[python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate

Python 解释器内置了一些函数,它们总是可用的。这里将它们按字母表顺序列出。

    Built-in Functions    
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reversed() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set() apply()
delattr() help() next() setattr() buffer()
dict() hex() object() slice() coerce()
dir() id() oct() sorted() intern()

all(iterable)

如果iterable的所有元素为真(或者iterable为空), 返回True

如果iterable的所有元素为真(或者iterable为空), 返回True。等同于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
>>> help(all)
Help on built-in function all in module __builtin__:

all(...)
    all(iterable) -> bool

    Return True if bool(x) is True for all values x in the iterable.
    If the iterable is empty, return True.

>>> listMy = [‘abc‘,‘abd‘]
>>> all(listMy)
True
>>> listMy.append(False)
>>> all(listMy)
False

any(iterable)

如果iterable的任一元素为真,返回True。如果iterable为空,返回False

>>> listMy = [‘abc‘,‘abd‘]
>>> any(listMy)
True
>>> listMy.append(False)
>>> any(listMy)
True

basestring()  用来测试一个对象是否为字符串或者u字符串

这个抽象类型是strunicode的超类。 它不能被调用或者实例化,但是可以用来测试一个对象是否是str或者unicode的实例。 isinstance(obj, basestring)等同于isinstance(obj, (str, unicode))

>>> isinstance(listMy, basestring)
False
>>> isintance(‘abc‘, basestring)

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    isintance(‘abc‘, basestring)
NameError: name ‘isintance‘ is not defined
>>> isinstance(‘abc‘, basestring)
True
>>> isinstance(u"准哦功能", basestring)
True
>>> isinstance(123, basestring)
False

bin(x),

将一个整数转化成一个二进制字符串。结果是一个合法的Python表达式。如果x不是一个Python int对象,它必须定义一个返回整数的__index__()方法。

bool([x])

将一个值转化成布尔值,使用标准的真值测试例程。如果x为假或者没有参数,它返回False;否则它返回Truebool也是一个类,它是int的子类。bool不能被继承。它唯一的实例就是FalseTrue

>>> bin(2)
‘0b10‘
>>> bin(4)
‘0b100‘
>>> bool(1)
True
>>> bool(2)
True

chr(i)

返回一个单字符字符串,字符的ASCII码为整数i。例如,chr(97)返回字符串‘a‘。 它是ord()的逆运算。参数的取值范围为[0..255]的闭区间;如果i超出取值范围,抛出ValueError。参见unichr()

>>> chr(97)
‘a‘
>>> ord(‘a‘)
97

classmethod(function)

将function包装成类方法。

类方法接受类作为隐式的第一个参数,就像实例方法接受实例作为隐式的第一个参数一样。声明一个类方法,使用这样的惯例:

class C(object):
    @classmethod
    def f(cls, arg1, arg2, ...):
        ...

@classmethod是函数decorator(装饰器)参见Function definitions中的函数定义。

它即可以通过类来调用(如C.f()),也可以通过实例来调用(如C().f())。除了实例的类,实例本身被忽略。如果在子类上调用类方法,子类对象被传递为隐式的第一个参数。

类方法不同于C++或Java中的静态方法。如果你希望静态方法,参见这节的staticmethod()

#coding=utf-8
class C(object):
    @classmethod
    def f(cls, arg1, arg2):
        print arg1,arg2

C.f(1,2)
C().f(2,3)

# 1 2
# 2 3

staticmethod(function)

返回function的一个静态方法。

静态方法不接受隐式的第一个参数(也就是实例名称self)。要声明静态方法,请使用下面的习惯方式:

class C(object):
    @staticmethod
    def f(arg1, arg2, ...):
        ...

@staticmethod形式是一个函数装饰器 – 细节请参阅函数定义中函数定义的描述。

它既可以在类上调用(例如C.f())也可以在实例上调用(例如C().f())。除了它的类型,实例其他的内容都被忽略。

#coding=utf-8
class C(object):
    @staticmethod
    def s(arg1, arg2):
        print arg1,arg2

C.s(1,2)
C().s(2,3)

# 1 2
# 2 3

cmp(x, y)

比较两个对象x和y,根据结果返回一个整数。如果x < y,返回负数;如果x == y,返回0;如果x > y,返回正数。

>>> cmp(‘a‘,‘b‘)
-1
>>> cmp(1,2)
-1
>>> cmp(‘a‘,2)
1
>>> lista=[1,2]
>>> listb=[2]
>>> cmp(lista,listb)
-1
>>> cmp(1.20,1.22)
-1
>>> cmp(1.23,1.2)
1

enumerate(sequence, start=0)

返回一个枚举对象。sequence必须是序列或迭代器iterator,或者支持迭代的对象。enumerate()返回的迭代器的next()方法返回一个元组,它包含一个计数(从start开始,默认为0)和从sequence中迭代得到的值:

>>>

>>> seasons = [‘Spring‘, ‘Summer‘, ‘Fall‘, ‘Winter‘]
>>> list(enumerate(seasons))
[(0, ‘Spring‘), (1, ‘Summer‘), (2, ‘Fall‘), (3, ‘Winter‘)]
>>> list(enumerate(seasons, start=1))
[(1, ‘Spring‘), (2, ‘Summer‘), (3, ‘Fall‘), (4, ‘Winter‘)]
等同于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

isinstance(object, classinfo)

如果参数object 是参数classinfo 的一个实例;或者是其一个(直接的、间接的或者virtual)子类的实例,返回真。如果classinfo是类型对象(新式类)而object是该类型对象;或者是其子类(直接的,间接的,或者virtual),返回真。如果object不是给定类型的类实例或者对象,该函数总是返回假。如果classinfo既不是类对象,也不是类型对象,它可以是类/类型对象的元组,或者递归包含这样的元组(不接受其它的序列类型)。如果classinfo不是类,类型,类/类型的元组,抛出TypeError异常。

issubclass(class, classinfo)

如果class是classinfo的子类(直接的,间接的,或者virtual) ,返回真。一个类被认为是它自己的子类。classinfo可以是类对象的元组,这时classinfo中的每个类对象都会被检查。其它情况下,抛出TypeError异常。

时间: 2024-10-01 03:11:46

[python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate的相关文章

[python学习篇][书籍学习][python standrad library][内建类型]迭代器类型

我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list.tuple.dict.set.str等:一类是generator,包括生成器和带yield的generator function.这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 可以使用isinstance()判断一个对象是否是Iterable对象: >>> from collections import Iterable >>> isinstance([

[python学习篇][书籍学习][python standrad library][内建类型]之数值

数值类型 - int, float, long, complex 有四种不同的数值类型:普通整数.长整数.浮点数和复数 普通整数(或者简称整数)使用C中的long实现,其精度至少为32位(sys.maxint始终设置为当前平台最大的普通整数值,最小值是-sys.maxint - 1).长整数具有无限的精度.浮点数字通常使用C中的double实现:有关你的程序所运行的机器上的浮点数精度及其内部表示形式的信息在sys.float_info中可以获得.复数有实部和虚部,各是一个浮点数.若要从复数z中提

[python学习篇][书籍学习][python standrad library][内置类型]对象测试真值,布尔值操作, 比较操作

几乎所有对象都可以比较.测试真值.转换为字符串(其实就是用repr()函数,或略有差异的str()函数来转换) 1 对象是否为真 任何对象都可以测试真值,用于if或while的条件或下面布尔运算的操作数.下面的值被视为假: None False 任何数值类型的零,例如,0. 0L.0.0. 0j. 任何空的序列,例如, ''. (). []. 任何空的映射,例如,{}. 用户定义的类的实例,如果该类定义一个__nonzero__()或__len__()的方法,在该方法返回整数零或布尔值False

【Python基础学习篇十】Python正则表达式(2015-01-01)

一.正则表达式简介 正则表达式用于文本匹配的工具,在源字符串中查找与给定的正则表达式相匹配的部分.一个正则表达式是由字母.数字和特殊字符组成的.正则表达式中有许多特殊的字符,这些特殊字符是构成正则表达式的要素. 1.正则表达式中的特殊字符: 2.正则表达式中的常用限定符: 利用{}可以控制字符重复的次数. 例如,\d{1,4}表示1位到3位的数字: 某些地区的电话号码是8位数,区号也有可能是3位或4位数字. \d{3}-\d{8}|\d{4}-\d{7} 3.限定符与"?"的组合 二.

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

【Python基础学习篇九】Python字符串

一.字符串的操作 字符串是Python的一种基本类型,字符串的操作包括字符串的格式化.字符串的截取.过滤.合并.查找等操作. 二.字符串的格式化 Python将若干值插入到带有"%"标记的字符串中,从而可以动态的输出字符串. 字符串的格式化语法如下: "% s" % str1 "%s %s" % (str1,str2) 例子: #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7

给深度学习入门者的Python快速教程 - 基础篇

实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido van Rossum,1

[python xml 学习篇][0]

tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root 标签print root.text #得到标签的值print root.attrib def parserResultXml(xmlfile): tree = ET.parse(xmlfile) result = tree.getroot()[0][1] for child in result: if chi

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学