亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python進階

廖雪峰 移動開發工程師
難度中級
時長 3小時33分
學習人數
綜合評分9.20
575人評價 查看評價
9.6 內容實用
9.0 簡潔易懂
9.0 邏輯清晰
  • 首先可以用 type() 函數獲取變量的類型,它返回一個 Type 對象: >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'> 其次,可以用 dir() 函數獲取變量的所有屬性: >>> dir(123) # 整數也有很多屬性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] >>> dir(s) ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name', 'score', 'whoAmI'] 對于實例變量,dir()返回所有實例屬性,包括`__class__`這類有特殊意義的屬性。注意到方法`whoAmI`也是 s 的一個屬性。 如何去掉`__xxx__`這類的特殊屬性,只保留我們自己定義的屬性?回顧一下filter()函數的用法。 dir()返回的屬性是字符串列表,如果已知一個屬性名稱,要獲取或者設置對象的屬性,就需要用 getattr() 和 setattr( )函數了: >>> getattr(s, 'name') # 獲取name屬性 'Bob' >>> setattr(s, 'name', 'Adam') # 設置新的name屬性 >>> s.name 'Adam' >>> getattr(s, 'age') # 獲取age屬性,但是屬性不存在,報錯: >>> getattr(s, 'age', 20) # 獲取age屬性,如果屬性不存在,就返回默認值20: 20
    查看全部
  • 定義Student類時,只需要把額外的屬性加上,例如score: class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 一定要用 super(Student, self).__init__(name, gender) 去初始化父類,否則,繼承自 Person 的 Student 將沒有 name 和 gender。 函數super(Student, self)將返回當前類繼承的父類,即 Person ,然后調用__init__()方法,注意self參數已在super()中傳入,在__init__()中將隱式傳遞,不需要寫出(也不能寫)。
    查看全部
  • 裝飾器啊,這蛋疼的感覺
    查看全部
  • decorater 就是輸入一個函數 f 返回一個被裝飾過的函數fn
    查看全部
  • def gcd(a,b): if b==0: return a return gcd(b,a%b) 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 __sub__(self, r): return Rational(self.p*r.q-self.q*r.p,self.q*r.q) def __mul__(self, r): return Rational(self.p*r.p,self.q*r.q) def __div__(self, r): return Rational(self.p*r.q,self.q*r.p) def __str__(self): g=gcd(self.p,self.q) return '%s/%s' %(self.p / g,self.q / g) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2 print r1 - r2 print r1 * r2 print r1 / r2
    查看全部
  • 考察下面的函數 f: def f(j): def g(): return j*j return g 它可以正確地返回一個閉包g,g所引用的變量j不是循環變量,因此將正常執行。 在count函數的循環內部,如果借助f函數,就可以避免引用循環變量i。 參考代碼: def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    1 采集 收起 來源:python中閉包

    2015-03-19

  • class Person(object): __count = 0 @classmethod def how_many(cls): return cls.__count def __init__(self,name): self.name=name Person.__count=Person.__count+1 print Person.how_many() p1 = Person('Bob') print Person.how_many()
    查看全部
  • lambda is a function
    查看全部
  • class Person(object): def __init__(self, name, score): self.name=name self.__score=score def get_grade(self): if self.__score>=80: return 'A' if self.__score>=60: return 'B' return 'C' p1 = Person('Bob', 90) p2 = Person('Alice', 65) p3 = Person('Tim', 48) print p1.get_grade() print p2.get_grade() print p3.get_grade()
    查看全部
  • 求最大公因式 def gcd(a, b): if b == 0: return a return gcd(b, a % b)
    查看全部
  • class Person(object): count=0 def __init__(self,name,**kw): self.name=name Person.count=Person.count+1 for k,v in kw.iteritems(): setattr(self,k,v) p1 = Person('Bob') print Person.count p2 = Person('Alice') print Person.count p3 = Person('Tim') print Person.count
    查看全部
  • 1.當實例屬性與類屬性重名時,實例屬性優先級高,他將屏蔽掉對類屬性的訪問 2.在實例上修改類屬性 并沒有修改類屬性,而是個實例綁定了一個屬性
    查看全部
  • 1.類屬性: 在類上綁定一個屬性,因為類也是一個對象 2.所有實例訪問的類屬性都是同一個,即實例屬性每個實例各自擁有,互相獨立,而類屬性有且只有一份
    查看全部
  • zsx
    如果 x 應該排在 y 的前面,返回 -1,如果 x 應該排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我們要實現倒序排序,只需要編寫一個reversed_cmp函數: def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 這樣,調用 sorted() 并傳入 reversed_cmp 就可以實現倒序排序: >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5]
    查看全部
  • zsx
    filter()函數是 Python 內置的另一個有用的高階函數,filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
    查看全部

舉報

0/150
提交
取消
課程須知
本課程是Python入門的后續課程 1、掌握Python編程的基礎知識 2、掌握Python函數的編寫 3、對面向對象編程有所了解更佳
老師告訴你能學到什么?
1、什么是函數式編程 2、Python的函數式編程特點 3、Python的模塊 4、Python面向對象編程 5、Python強大的定制類

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!