-
這個方法只要定義類型的時候,實現(xiàn)__call__函數(shù),這個類型就成為可調(diào)用的。 換句話說,我們可以把這個類型的對象當(dāng)作函數(shù)來使用,相當(dāng)于 重載了括號運算符。我們可以 實例對象()
查看全部 -
對于運算法則來說,是先將右邊的值運算至最后結(jié)果,再對左邊進行賦值
查看全部 -
利用任意關(guān)鍵字參數(shù)+setattr的方法,可以讓目標(biāo)對象快速附上新的屬性
查看全部 -
但是在實際調(diào)用的時候,會首先查找自身的定義,如果自身有定義,則優(yōu)先使用自己定義的函數(shù);如果沒有定義,則順著繼承鏈向上找
查看全部 -
Python3.x 和 Python2.x 的一個區(qū)別是: Python 3 可以使用直接使用?super().xxx?代替?super(Class, self).xxx
查看全部 -
類方法需要使用@classmethod來標(biāo)記為類方法,否則定義的還是實例方法
類方法的第一個參數(shù)將傳入類本身,通常將參數(shù)名命名為 cls,上面的 cls.__localtion 實際上相當(dāng)于Animal.__localtion。
查看全部 -
實例的方法指的就是在類中定義的函數(shù),實例方法的第一個參數(shù)永遠都是self,self是一個引用,指向調(diào)用該方法的實例對象本身,除此以外,其他參數(shù)和普通函數(shù)是完全一樣的。
查看全部 -
類和實例的私有屬性不能被外部訪問,可以被類的內(nèi)部訪問查看全部
-
class Animal(object):??
??? localtion = 'Asia
??? count=0
??? def __init__(self, name, age):????????
??????? self.name = name?
??????? self. age = age
??????? Animal.count+=1查看全部 -
class Animal(object):
??? def __init__(self,name, age, ):
??????? self.name=name
??????? self.age=age
animal_cat=Animal("cat",1)
animal_dog=Animal("dog",2)
查看全部 -
在定義繼承類的時候,有幾點是需要注意的:
- class Student()定義的時候,需要在括號內(nèi)寫明繼承的類Person
在__init__()方法,需要調(diào)用super(Student, self).__init__(name, gender),來初始化從父類繼承過來的屬性
super().__init__()是用來初始化父類繼承到子類身上的屬性的
查看全部 -
私有屬性有類和實例對象兩大群體
查看全部 -
私有屬性是以雙下劃線'__'開頭的屬性
在外部訪問私有屬性將會拋出異常,提示沒有這個屬性。
雖然私有屬性無法從外部訪問,但是,從類的內(nèi)部是可以訪問的。私有屬性是為了保護類或?qū)嵗龑傩圆槐煌獠课廴径O(shè)計的查看全部 -
import time
def performance(f):
? ?def fn(*args, **kw):
? ? ? ?t1 = time.time()
? ? ? ?r = f(*args, **kw)
? ? ? ?t2 = time.time()
? ? ? ?print('call %s() in %fs' % (f.__name__, (t2 - t1)))
? ? ? ?return r
? ?return fn
@performance
def factorial(n):
? ?return reduce(lambda x,y: x*y, range(1, n+1))
print(factorial(10))
查看全部 -
class animal(object):pass dog = animal() cat = animal()查看全部
舉報