1、type函数返回任意对象的数据类型。type可以接收任何东西作为参数——整型、字符串、列表、字典、元组、函数、类、模块、甚至类型对象,并返回它的数据类型。可以使用types模块中的常量来进行对象类型的比较。
import myModule
import types
type(myModule) == types.MuduleType #返回True
2、str函数将数据强制转换为字符串,每种数据类型都可以强制转换为字符串。
horsemen = ['war','pestilence','famine']
str(horsemen) #返回"['war','pestilence','famine']"
str(myModule) #返回"<module 'myModule' from 'c:\\docbook\\dip\\py\\myModule.py'>"
str(None) #返回‘None’
3、dir函数返回任意对象的属性和方法列表,包括模块对象、函数对象、字符串对象、列表对象、字典对象......
4、callable函数:它接收任何对象作为参数,如果参数对象是可调用的,返回True;否则返回False。可调用对象包括函数、类方法、甚至类本身。
5、string.punctuation:它是一个字符串,包含了所有标准的标点符号字符。
6、getattr函数获取一个直到运行时才知道名称的函数的引用。
li = ["Larry", "Curly"]
li.pop #返回 <built-in method pop of list object at 010DF884>
getattr(li, "pop") #返回 <built-in method pop of list object at 010DF884>
getattr(li, "append")("Moe") #此时li 为["Larry", "Curly", "Moe"]
getattr({}, "clear") #返回 <built-in method clear of dictionary object at 00F113D4>
li.pop 该语句获取列表的pop方法的引用。
getattr(li, "append")("Moe") ,getattr的返回值是方法,然后就可以调用它,就像直接使用li.append("Moe")一样。
通常,getattr(object , "attribute")等价于 object.attribute
getattr通常的使用模式是作为一个分发者!举个例子 ,如果你有一个程序可以以不同的格式输出数据,你可以为每种输出格式定义各自的格式输出函数,然后使用唯一的分发函数调用所需的格式输出函数。 例如,让我们假设有一个以 HTML、XML 和普通文本格式打印站点统计的程序。 输出格式在命令行中指定,或者保存在配置文件中。statsout 模块定义了三个 函数:output_html、output_xml 和 output_text。然后主程序定义了唯一的输出函数 ,
import statsout
def output(data, format="text"):
output_function = getattr(statsout, "output_%s" % format, statsout.output_text)
return output_function(data)
这个函数调用添加了第三个参数,第三个参数是一个缺省返回值,如果第二个参数指定的属性或者方法没能找到,泽将返回这个缺省返回值。
7、过滤列表
过滤列表语法:[mapping-expression for element in source-list if filter-expression]
以if开头的是过滤器表达式,过滤器表达式可以使返回值为真或假的任何表达式,任何经过滤器表达式演算值为真的元素都可以包含在映射中,其他元素都将忽略,不会进入映射表达式,更不会包含在输出列表中。
li = ['a','mpilgrim','foo','b',c','b','d','d']
[elem for elem in li if len(elem) > 1] #返回['mpilgrim','foo']
Python遍历整个列表,它将对每个元素执行过滤器表达式,如果过滤器表达式演算值为真,该元素就会被映射,同时映射表达式的结果将包含在返回的列表中。
8、and和or的特殊性质
使用and时,在布尔环境中从左到右演算表达式的值。如果布尔环境中的所有值都为真,那么and返回最后一个值,如果布尔环境中的某个值为假,则and返回第一个假值。
使用or时,在布尔环境中从左到右演算值,如果有一个值为真,or立刻返回该值。如果所有的值都为假,or返回最后一个假值。注意or在布尔环境中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值。
9、split函数不带参数:不带参数的spit按照空白进行分割。
s = "this is\na\ttest"
print s
this is
a test
print s.split()
['this','is','a','test']
10、ljust方法:ljust用空格填充字符串以符合指定的长度,如果指定的长度小于字符串的长度,ljust将简单地返回未变化的字符串,它决不会截断字符串。
s = 'buildConnectionString'
s.ljust(30) #返回'buildConnectionString '
s.ljust(20) #返回'buildConnectionString'