跳至主要内容

Python学习笔记20100117

映射list
 
Dictionary 是用{}. list 是一那个[]. turple是用()
当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来
当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list.
链接与分割字符串的
li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)
 
自省 <---这是啥
之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。
下载该脚本s,然后上传至指定位置。
>>>import sys
>>>sys.path
>>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。
删除
>>>sys.path.pop()
定义一个参数是 def info(test, test1=10.test2=12):
info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值
 
以上是外部函数的调用,下面转到内部函数
内部函数有type,str,dir及其他
 
---type
返回任意字符的类型,模块也可以。types模块
>>> type(1)
<type 'int'>
>>> li=[]
>>> type(li)
<type 'list'>
>>> import odbchelper
>>> type(odbchelper)
<type 'module'>
>>> type(sys)
<type 'module'>
>>> import types
>>> type(odbchelper) == types.ModuleType
True
 
 
---str
str将强制转换字符串
>>> str(horsemen)
"['war', 'pestilence', 'famine', 'testing']" <---这个是一个字符串""
>>> str(odbchelper)
"<module 'odbchelper' from '/home/xtuulei/py/odbchelper.py'>"
str 还允许作用于模块。注意模块的字符串形式表示包含了模块在磁盘上的路径名,所以你的显示结果将会有所不同。
>>> str(None) ---书上说这个很重要,对空值的使用
'None'
 
---dir
相比较而言,不是很熟这个,但是貌似可以列出来所有li,d,funcation所包含的key
--callable
 
type、str、dir 和其它的 Python 内置函数都归组到了 __builtin__
你可以在其中使用
>>>form apihelper import info
>>>import __builtin__
>>>info(__buitin__)
 
---getattr
>>getattr(li,"pop")
该语句也是返回 pop 方法的引用,但是此时,方法名称是作为一个字符串参数传递给 getattr 函数的。getattr 是一个有用到令人无法致信的内置函数,可以返回任何对象的任何属性。
>>>getattr(li,"append")("Moe")
>>>li
getattr 的返回值 是 方法,然后你就可以调用它就像直接使用 li.append("Moe") 一样。但是实际上你没有直接调用函数;只是以字符串形式指定了函数名称。
getattr 也可以作用于字典
getattr 不仅仅适用于内置数据类型,也可作用于模块
 
getattr也可以做为一个分发者
getattr作为一个分发者的实例
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)
output_function第三个参数是被定义为缺省参数,在调用 getattr 时添加了第三个参数。第三个参数是一个缺省返回值,如果第二个参数指定的属性或者方法没能找到,则将返回这个缺省返回值
 

--
Alex Tu
-----------------------------------------------------------
ShangHai,China

评论

此博客中的热门博文

4 steps to delete account in Gerrit DB

4 steps to delete account in DB. Delete from accounts where preferred_email=’’; delete from account_ssh_keys where account_id=''; delete from account_external_ids where external_id='gerrit:*’; delete from account_external_ids where external_id='username:*’; whatever it was in H2 database and postgres db . H2: ssh -p 24198 localhost gerrit gsql Postgres: psql

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...