內(nèi)置方法

你也可以使用以下函數(shù)的方式來(lái)訪問(wèn)屬性:

  • getattr(obj, name[, default]) : 訪問(wèn)對(duì)象的屬性贞铣。
  • hasattr(obj,name) : 檢查是否存在一個(gè)屬性想括。
  • setattr(obj,name,value) : 設(shè)置一個(gè)屬性忌傻。如果屬性不存在,會(huì)創(chuàng)建一個(gè)新屬性浸卦。
  • delattr(obj, name) : 刪除屬性。

Python內(nèi)置類屬性

__dict__ : 類的屬性(包含一個(gè)字典,由類的數(shù)據(jù)屬性組成)
__doc__ :類的文檔字符串
__name__: 類名
__module__: 類定義所在的模塊(類的全名是'__main__.className'般贼,如果類位于一個(gè)導(dǎo)入模塊mymod中,那么className.__module__ 等于 mymod)
__bases__: 類的所有父類構(gòu)成元素(包含了以個(gè)由所有父類組成的元組)

  1. abs() 求絕對(duì)值
    exp: abs(x)
    x 是 整型

  2. all(iterable)
    判斷iterable可迭代對(duì)象中所有元素都是True,(元素除0奥吩,空哼蛆,None,F(xiàn)alse外)

  3. any(iterable)
    判斷可迭代對(duì)象iterable 中任意一個(gè)元素是True,則返回True.

  4. basestring()
    basestring() 方法是 str 和 unicode 的超類(父類)圈驼,也是抽象類人芽,因此不能被調(diào)用和實(shí)例化,但可以被用來(lái)判斷一個(gè)對(duì)象是否為 str 或者 unicode 的實(shí)例绩脆,isinstance(obj, basestring) 等價(jià)于 isinstance(obj, (str, unicode))萤厅。

  5. bin()
    bin() 返回一個(gè)整數(shù) int 或者長(zhǎng)整數(shù) long int 的二進(jìn)制表示橄抹。

  6. bool()
    轉(zhuǎn)換成布爾值(True, False)

  7. bytearray()
    方法返回一個(gè)新字節(jié)數(shù)組(bytearray()).

>>> bytearray([1,2])
bytearray(b'\x01\x02')

8.callable()

1. 方法用來(lái)檢測(cè)對(duì)象是否可被調(diào)用,可被調(diào)用指的是對(duì)象能否使用()括號(hào)的方法調(diào)用惕味。
2. 可調(diào)用對(duì)象楼誓,在實(shí)際調(diào)用也可能調(diào)用失敗名挥;但是不可調(diào)用對(duì)象疟羹,調(diào)用肯定不成功。
3. 類對(duì)象都是可被調(diào)用對(duì)象禀倔,類的實(shí)例對(duì)象是否可調(diào)用對(duì)象榄融,取決于類是否定義了__call__方法。
對(duì)于函數(shù)救湖、方法愧杯、lambda 函式、 類以及實(shí)現(xiàn)了 __call__ 方法的類實(shí)例, 它都返回 True鞋既。
  1. chr(i) i -- 可以是10進(jìn)制也可以是16進(jìn)制的形式的數(shù)字力九。
    返回一個(gè)與acsii碼對(duì)應(yīng)的字符。
>>>print chr(0x30), chr(0x31), chr(0x61)   # 十六進(jìn)制
0 1 a
>>> print chr(48), chr(49), chr(97)         # 十進(jìn)制
0 1 a
  1. classmethod()
    classmethod 修飾符對(duì)應(yīng)的函數(shù)不需要實(shí)例化邑闺,不需要 self 參數(shù)跌前,但第一個(gè)參數(shù)需要是表示自身類的 cls 參數(shù),可以來(lái)調(diào)用類的屬性陡舅,類的方法抵乓,實(shí)例化對(duì)象等。
class A():
    bar = 1
    def __init__(self):
        pass
    
    def func1(self):
        print("func1")
    
    @classmethod
    def foo(cls):
        print("this is foo ")
        print(cls.bar)
        cls().func1()  # 先實(shí)例化再調(diào)用

A.foo()
  1. cmp(x, y) 比較x,y兩個(gè)數(shù)值表達(dá)式蹭沛,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1臂寝。
    Python 3.X 的版本中已經(jīng)沒(méi)有 cmp 函數(shù),如果你需要實(shí)現(xiàn)比較功能摊灭,需要引入 operator 模塊咆贬,適合任何對(duì)象,包含的方法有:
operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.__lt__(a, b)
operator.__le__(a, b)
operator.__eq__(a, b)
operator.__ne__(a, b)
operator.__ge__(a, b)
operator.__gt__(a, b)

調(diào)用:
>>> import operator
>>> operator.eq(1,2)
False
>>> operator.__lt__(1,2)
True
>>> operator.__eq__(1,2)
False
  1. compile()
    compile() 函數(shù)將一個(gè)字符串編譯為字節(jié)代碼帚呼。
    不詳細(xì)介紹

  2. complxe()
    complex() 函數(shù)用于創(chuàng)建一個(gè)值為 real + imag * j 的復(fù)數(shù)或者轉(zhuǎn)化一個(gè)字符串或數(shù)為復(fù)數(shù)掏缎。如果第一個(gè)參數(shù)為字符串,則不需要指定第二個(gè)參數(shù)煤杀。

>>> complex(1)    # 數(shù)字
(1 + 0j)
 
>>> complex("1")  # 當(dāng)做字符串處理
(1 + 0j)
 
# 注意:這個(gè)地方在"+"號(hào)兩邊不能有空格眷蜈,也就是不能寫成"1 + 2j",應(yīng)該是"1+2j"沈自,否則會(huì)報(bào)錯(cuò)
>>> complex("1+2j")
(1 + 2j)
  1. delattr(object, name)
    刪除對(duì)象中 name
    delattr(x, 'foobar') 相等于 del x.foobar酌儒。

  2. dict() 函數(shù)用于創(chuàng)建一個(gè)字典。

  3. dir([object])
    dir() # 獲得當(dāng)前模塊的屬性列表.
    dir([ ]) # 查看列表的方法.

  4. divmod(x,y)
    返回一個(gè)包含商和余數(shù)的元組(a // b, a % b)枯途。

>>> divmod(7,3)
(2, 1)
>>> a = divmod(7,3)
>>> a[0]
2
>>> a[1]
  1. enumerate() 枚舉

enumerate(sequence, [start=0])
第二個(gè)參數(shù)忌怎,默認(rèn)枚舉從0 開始.
用for in enumerate()的好處就是在 第二個(gè)參數(shù)上.

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下標(biāo)從 1 開始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
  1. eval() 執(zhí)行的是一個(gè)字符串表達(dá)式
    eval() 函數(shù)用來(lái)執(zhí)行一個(gè)字符串表達(dá)式籍滴,并返回表達(dá)式的值。

eval(expression[, globals[, locals]])

>>> eval("1+2")
3
>>> eval("n+2")
4
>>> eval("n==6")
False
>>> eval("pow(2,3)")
8
  1. execfile()
    execfile() 函數(shù)可以用來(lái)執(zhí)行一個(gè)文件榴啸。

execfile(filename[, globals[, locals]])

  1. file() 函數(shù)用于創(chuàng)建一個(gè) file 對(duì)象孽惰,它有一個(gè)別名叫 open(),更形象一些鸥印,它們是內(nèi)置函數(shù)秒啦。
>>>f = file('test.txt')
>>> f.read()
'RUNOOB1\nRUNOOB2\n'
>>>f.close()
  1. filter() 篩選返回一個(gè)新列表
    filter() 函數(shù)用于過(guò)濾序列乔夯,過(guò)濾掉不符合條件的元素郎哭,返回由符合條件元素組成的新列表著淆。

filter(function, iterable)

  1. float() 轉(zhuǎn)換成浮點(diǎn)數(shù)
    float() 函數(shù)用于將整數(shù)和字符串轉(zhuǎn)換成浮點(diǎn)數(shù)。

  2. formate() 格式化

  3. frozenset() 不可變的集合
    set 值是不重復(fù)的.

>>> set('zxczxce')
set(['x', 'c', 'z', 'e'])
>>> frozenset('zxczxce')
frozenset(['x', 'c', 'z', 'e'])
  1. hash() 用于獲取一個(gè)對(duì)象(字符串或者數(shù)值等)的哈希值璃弄。
    hash() 函數(shù)可以應(yīng)用于數(shù)字要销、字符串和對(duì)象,不能直接應(yīng)用于 list夏块、set、dictionary纤掸。

hash()用途:
如果程序(字符)在傳輸過(guò)程中被修改hash值即發(fā)生變化脐供,如果沒(méi)有被修改,則 hash 值和原始的 hash 值吻合

  1. hex() 函數(shù)用于將10進(jìn)制整數(shù)轉(zhuǎn)換成16進(jìn)制借跪,以字符串形式表示政己。
>>> hex(10)
'0xa'
>>> type(hex(10))
<type 'str'>
  1. id() 函數(shù)用于獲取對(duì)象的內(nèi)存地址。

  2. issubclass() 方法用于判斷參數(shù) class 是否是類型參數(shù) classinfo 的子類掏愁。

issubclass(class, classinfo)

  1. iter() 函數(shù)用來(lái)生成迭代器歇由。

iter(object[, sentinel])

>>> x = lambda x: [x for x in range(x)]
>>> for i in iter(x(4)):
...     print(i)
...
0
1
2
3
  1. globals(), locals()
    直接調(diào)用

locals()
globals()

  1. long() 函數(shù)將數(shù)字或字符串轉(zhuǎn)換為一個(gè)長(zhǎng)整型。

class long(x, base=10) # 默認(rèn)是十進(jìn)制

  1. map()

map(function, iterable, ...)
第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù)果港,返回包含每次 function 函數(shù)返回值的新列表沦泌。

>>> x = lambda x: [x for x in range(x)]
>>> map(x,[2,3])
[[0, 1], [0, 1, 2]]
  1. oct() 函數(shù)將一個(gè)整數(shù)轉(zhuǎn)換成8進(jìn)制字符串。

  2. ord() 返回對(duì)應(yīng)的 ASCII 數(shù)值辛掠,或者 Unicode 數(shù)值谢谦,如果所給的 Unicode 字符超出了你的 Python 定義范圍,則會(huì)引發(fā)一個(gè) TypeError 的異常萝衩。

  3. pow() 方法返回 xy(x的y次方) 的值回挽。

  4. property() 函數(shù)的作用是在新式類中返回屬性值。

class property([fget[, fset[, fdel[, doc]]]])

##定義一個(gè)可控屬性值 x
class C(object):
    def __init__(self):
        self._x = None
 
    def getx(self):
        return self._x
 
    def setx(self, value):
        self._x = value
 
    def delx(self):
        del self._x
 
    x = property(getx, setx, delx, "I'm the 'x' property.")
class Parrot(object):
    def __init__(self):
        self._voltage = 100000
 
    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage
##property 的 getter,setter 和 deleter 方法同樣可以用作裝飾器:

class C(object):
    def __init__(self):
        self._x = None
 
    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x
 
    @x.setter
    def x(self, value):
        self._x = value
 
    @x.deleter
    def x(self):
        del self._x
  1. range()

range(start=0, stop[, step])
參數(shù)說(shuō)明:
start: 計(jì)數(shù)從 start 開始猩谊。默認(rèn)是從 0 開始千劈。例如range(5)等價(jià)于range(0, 5);
stop: 計(jì)數(shù)到 stop 結(jié)束牌捷,但不包括 stop墙牌。例如:range(0涡驮, 5) 是[0, 1, 2, 3, 4]沒(méi)有5
step:步長(zhǎng),默認(rèn)為1憔古。例如:range(0遮怜, 5) 等價(jià)于 range(0, 5, 1)

  1. reduce() 函數(shù)會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。

reduce(function, iterable[, initializer])

>>> x = lambda x,y:x*y
>>> reduce(x,[2,3,4])
24
>>> x = lambda x,y:x+y
>>> reduce(x,[2,3,4])
9
  1. reload() 用于重新載入之前載入的模塊鸿市。
>>>import sys
>>> sys.getdefaultencoding()            # 當(dāng)前默認(rèn)編碼
'ascii'
>>> reload(sys)                         # 使用 reload
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8')      # 設(shè)置編碼
>>> sys.getdefaultencoding()
'utf8'
>>>
  1. repr()
    repr() 函數(shù)將對(duì)象轉(zhuǎn)化為供解釋器讀取的形式锯梁。即返回一個(gè)對(duì)象的字符串形式。
>>> repr(frozenset({1,2,3}))
'frozenset([1, 2, 3])'
>>> dict = {'x':1, 'y':2}
>>> dict
{'y': 2, 'x': 1}
>>> repr(dict)
"{'y': 2, 'x': 1}"
  1. reverse() 函數(shù)用于反向列表中元素焰情。

list.reverse()
該方法沒(méi)有返回值陌凳,但是會(huì)對(duì)列表的元素進(jìn)行反向排序。

  1. round() 方法返回浮點(diǎn)數(shù)x的四舍五入值内舟。

  2. slice() 函數(shù)實(shí)現(xiàn)切片對(duì)象合敦,主要用在切片操作函數(shù)里的參數(shù)傳遞。
    不常用

  3. sorted(iterable, cmp=None, key=None, reverse=False)

  4. python staticmethod 返回函數(shù)的靜態(tài)方法验游。
    該方法不強(qiáng)制要求傳遞參數(shù)充岛,如下聲明一個(gè)靜態(tài)方法:

class C(object):
    @staticmethod
    def f(arg1, arg2, ...):
        ...
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class C(object):
    @staticmethod
    def f():
        print('runoob');
 
C.f();          # 靜態(tài)方法無(wú)需實(shí)例化
cobj = C()
cobj.f()        # 也可以實(shí)例化后調(diào)用
  1. unichr() 函數(shù) 和 chr()函數(shù)功能基本一樣, 只不過(guò)是返回 unicode 的字符耕蝉。

  2. vars() 函數(shù)返回對(duì)象object的屬性和屬性值的字典對(duì)象崔梗。

vars([object])
返回對(duì)象object的屬性和屬性值的字典對(duì)象,
如果沒(méi)有參數(shù)垒在,就打印當(dāng)前調(diào)用位置的屬性和屬性值 類似 locals()蒜魄。

  1. xrange()
    xrange() 函數(shù)用法與 range 完全相同,所不同的是生成的不是一個(gè)數(shù)組场躯,而是一個(gè)生成器谈为。

xrange則不會(huì)直接生成一個(gè)list,而是每次調(diào)用返回其中的一個(gè)值

>>> x = xrange(10)
>>> x
xrange(10)
>>> x[2]
2
>>> x[0]
0
>>> x[9]
9
>>> y = range(10)
>>> y
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

所以xrange做循環(huán)的性能比range好踢关,尤其是返回很大的時(shí)候伞鲫。盡量用xrange吧,除非你是要返回一個(gè)列表耘成。

  1. zip() 打包函數(shù)

zip([iterable, ...])

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包為元組的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素個(gè)數(shù)與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 與 zip 相反榔昔,*zipped 可理解為解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]
  1. import() 函數(shù)用于動(dòng)態(tài)加載類和函數(shù) 瘪菌。

如果一個(gè)模塊經(jīng)常變化就可以使用__import__()來(lái)動(dòng)態(tài)載入撒会。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市师妙,隨后出現(xiàn)的幾起案子诵肛,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怔檩,死亡現(xiàn)場(chǎng)離奇詭異褪秀,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)薛训,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門媒吗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人乙埃,你說(shuō)我怎么就攤上這事闸英。” “怎么了介袜?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵甫何,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我遇伞,道長(zhǎng)辙喂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任鸠珠,我火速辦了婚禮巍耗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渐排。我一直安慰自己芍锦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布飞盆。 她就那樣靜靜地躺著,像睡著了一般次乓。 火紅的嫁衣襯著肌膚如雪吓歇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天票腰,我揣著相機(jī)與錄音城看,去河邊找鬼。 笑死杏慰,一個(gè)胖子當(dāng)著我的面吹牛测柠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缘滥,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼轰胁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了朝扼?” 一聲冷哼從身側(cè)響起赃阀,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎擎颖,沒(méi)想到半個(gè)月后榛斯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體观游,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年驮俗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懂缕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡王凑,死狀恐怖搪柑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荤崇,我是刑警寧澤拌屏,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站术荤,受9級(jí)特大地震影響倚喂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓣戚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一端圈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧子库,春花似錦舱权、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至仓技,卻和暖如春鸵贬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脖捻。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工阔逼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人地沮。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓嗜浮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摩疑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子危融,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容