-
很好賤賤賤查看全部
-
def gcd(a, b): if b == 0: return a return gcd(b, a % b)#count the gongyueshu計算公約數?。。?查看全部
-
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __str__(self): return '%s/%s' % (self.p, self.q) __repr__ = __str__查看全部
-
mingbiaode查看全部
-
注意kw查看全部
-
class Person(object): def __init__(self, name, gender, **kw): self.name=name self.gender=gender for k,v in kw.iteritems(): setattr(self,k,v) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course查看全部
-
這是動態語言和靜態語言(例如Java)最大的差別之一。動態語言調用實例方法,不檢查類型,只要方法存在,參數正確,就可以調用。查看全部
-
誰會死的問題,理論證明(雖然沒有證明完)但是D肯定死啊。查看全部
-
每層的每一個包下都應有_init_.py 文件查看全部
-
閉包 在函數內部定義的函數和外部定義的函數是一樣的,只是他們無法被外部訪問: def g(): print 'g()...' def f(): print 'f()...' return g 將 g 的定義移入函數 f 內部,防止其他代碼調用 g: def f(): print 'f()...' def g(): print 'g()...' return g 但是,考察上一小節定義的 calc_sum 函數: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 注意: 發現沒法把 lazy_sum 移到 calc_sum 的外部,因為它引用了 calc_sum 的參數 lst。 像這種內層函數引用了外層函數的變量(參數也算變量),然后返回內層函數的情況,稱為閉包(Closure)。 閉包的特點是返回的函數還引用了外層函數的局部變量,所以,要正確使用閉包,就要確保引用的局部變量在函數返回后不能變。舉例如下: # 希望一次返回3個函數,分別計算1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 你可能認為調用f1(),f2()和f3()結果應該是1,4,9,但實際結果全部都是 9(請自己動手驗證)。 原因就是當count()函數返回了3個函數時,這3個函數所引用的變量 i 的值已經變成了3。由于f1、f2、f3并沒有被調用,所以,此時他們并未計算 i*i,當 f1 被調用時: >>> f1() 9 # 因為f1現在才計算i*i,但現在i的值已經變為3 因此,返回函數不要引用任何循環變量,或者后續會發生變化的變量。查看全部
-
實例對象查看全部
-
可見,當實例屬性和類屬性重名時,實例屬性優先級高,它將屏蔽掉對類屬性的訪問。 可見,千萬不要在實例上修改類屬性,它實際上并沒有修改類屬性,而是給實例綁定了一個實例屬性。查看全部
-
由于創建實例必定會調用__init__()方法,所以在這里修改類屬性 count 很合適。 參考代碼: class Person(object): count = 0 def __init__(self, name): Person.count = Person.count + 1 self.name = name p1 = Person('Bob') print Person.count # => 1 p2 = Person('Alice') print Person.count # => 2 p3 = Person('Tim') print Person.count # => 3查看全部
-
以雙下劃線開頭的屬性無法被外部訪問,"__xxx__"除外。查看全部
-
可見,只有以雙下劃線開頭的"__job"不能直接被外部訪問。 但是,如果一個屬性以"__xxx__"的形式定義,那它又可以被外部訪問了,以"__xxx__"定義的屬性在Python的類中被稱為特殊屬性,有很多預定義的特殊屬性可以使用,通常我們不要把普通屬性用"__xxx__"定義。 以單下劃線開頭的屬性"_xxx"雖然也可以被外部訪問,但是,按照習慣,他們不應該被外部訪問。查看全部
舉報
0/150
提交
取消