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

為了賬號安全,請及時綁定郵箱和手機立即綁定
    1. 由于Python是動態語言,任何實例在運行期都可以動態地添加屬性。

    2. 如果要限制添加的屬性,就可以利用Python的一個特殊的__slots__來實現。


    查看全部
    1. __add__、__sub__、__mul__、__truediv__? ?加減乘除


    • 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 '{}/{}'.format(self.p, self.q)

    • (1)p分子,q分母

    • (2)self.p * r.q + self.q * r.p??新分子 = (當前分子 * 另一個分母) + (當前分母 * 另一個分子)

    • (3)self.q * r.q分母乘分母

    • (4)將新分子分母替換原來的p,q


    ????2.地板除的特殊方法是__floordiv__,普通除法是__truediv__。地板除法和普通除法不一樣,地板除法的結果只會向下取整數。

    ????3.在運算中,普通除法使用/表示,而地板除使用//表示。

    查看全部
    1. 對于列表List或者元組Tuple,通過內建方法len(),可以得出列表或者元組中元素的個數

    2. 如果一個類表現得像一個list,想使用len()函數來獲取元素個數時,則需要實現__len__()方法。

    查看全部
    1. 對于Python的內建對象,比如int、dict、list等,通過str()方法,可以把這些對象轉換為字符串對象輸出。


    #########################################################

    class Person:
    ? ?pass

    bob = Person()
    str(bob) # ==> '<__main__.Person object at 0x7fc77b859c50>'

    #########################################################

    (1)<__main__.Person object at 0x7fc77b859c50>這個結果其實是Animal的實例cat在內存中的地址


    ?????2.如果我們的類也想把容易理解的字符串輸出的話,那么我們也需要實現類的????????????__str__()方法。

    ?????3.當我們直接打印實例化對象的時候,調用的是__str__方法(用戶)的返回? ? ????????結果,當我們在終端中調用實例化對象的時候,得到確實__repr__?方?法????????(開發者)的返回結果。

    查看全部
    1. 通過type()函數,可以獲得變量的類型。

    2. 通過dir()方法,可以獲取變量的所有屬性。

    3. 在dir列出的屬性中,有很多是以下劃線開頭和結尾的,這些都是特殊的方法,稱為內建方法。


    ########################################################

    class Person(object):
    ? ?def __init__(self, name, gender):
    ? ? ? ?self.name = name
    ? ? ? ?self.gender = gender
    ? ?def who(self):
    ? ? ? ?return 'I am a Person, my name is {}'.format(self.name)

    p = Person('Alice', 'Female')
    dir(p)

    ########################################################

    對于實例變量,dir()返回所有實例屬性,包括__class__這類有特殊意義的屬性。注意到方法who也是p的一個屬性。


    ????4.dir()返回的屬性是字符串列表,如果已知一個屬性名稱,要獲取或者設置對象? ????????的屬性,就需要用 getattr() 和 setattr( )函數了。

    ????(1)getattr() :獲取某一對象屬性

    ????(2)?setattr( ):設置新的屬性

    查看全部
  • 在定義繼承類的時候,有幾點是需要注意的:

    1.class Student()定義的時候,需要在括號內寫明繼承的類Person

    2.在__init__()方法,需要調用super(Student, self).__init__(name, gender),來初始化從父類繼承過來的屬性

    查看全部
    0 采集 收起 來源:Python繼承類

    2023-11-23

    1. 如果需要操作類的私有屬性,則應該定義類的方法。

    2. 默認的,在class中定義的全部是實例方法。

    3. 和實例方法不同的是,這里有兩點需要特別注意:

      (1)類方法需要使用@classmethod來標記為類方法,否則定義的還是實例方法

      (2)類方法的第一個參數將傳入類本身,通常將參數名命名為 cls,上面的 cls.__localtion 實際上相當于Animal.__localtion。


    查看全部
    1. 私有屬性是以雙下劃線'__'開頭的屬性。

    2. 私有屬性是為了保護類或實例屬性不被外部污染而設計的。

    查看全部
    1. 在類屬性和實例屬性同時存在的情況下,實例屬性的優先級是要高于類屬性的


    查看全部
  • # Enter a code

    class Person(object):

    ? ?pass


    class Student(Person):

    ? ? def __init__(self, name, age):

    ? ? ? ? self.name = name

    ? ? ? ? self.age = age


    class Teacher(Person):

    ? ? def __init__(self, name, age):

    ? ? ? ? self.name = name

    ? ? ? ? self.age = age


    class SkillMixin(object):

    ? ? pass

    ? ??

    class BasketballMixin(SkillMixin):

    ? ? def skill(self):

    ? ? ? ? return 'basketball'

    ? ? ? ??

    class FootballMixin(SkillMixin):

    ? ? def skill(self):

    ? ? ? ? return 'football'

    ? ? ? ??

    class Basketball_Student(Student,BasketballMixin):

    ? ? def __init__(self,name,age):

    ? ? ? ? super(Basketball_Student,self).__init__(name,age)


    class Football_Teacher(Teacher,FootballMixin):

    ? ? def __init__(self,name,age):

    ? ? ? ? super(Football_Teacher,self).__init__(name,age)


    s = Basketball_Student('eric',24)

    ? ? ? ??

    print('I am {},I like playing {}'.format(s.name,s.skill()))

    查看全部
    0 采集 收起 來源:Python中的多態

    2023-10-31

  • 和實例方法不同的是,這里有兩點需要特別注意:

    ? ? 1.類方法需要使用@classmethod來標記為類方法,否則定義的還是實例方法

    ? ? 2.類方法的第一個參數將傳入類本身,通常將參數名命名為 cls,上面的? ? ? ? ? ? ? ? ? ? ?cls.__localtion 實際上相當于Animal.__localtion。

    查看全部
  • class Fib(object):

    ? ? def __init__(self):

    ? ? ? ? self.array = []

    ? ? ? ?

    ? ? def __call__(self, num):

    ? ? ? ? if(num == 1):

    ? ? ? ? ? ? self.array = [1]

    ? ? ? ? elif(num == 2):

    ? ? ? ? ? ? self.array = [1, 1]

    ? ? ? ? else:

    ? ? ? ? ? ? self.array = [1, 1]

    ? ? ? ? ? ? for i in range(2, num):

    ? ? ? ? ? ? ? ? a = self.array[i - 1]

    ? ? ? ? ? ? ? ? b = self.array[i - 2]

    ? ? ? ? ? ? ? ? self.array.append(a + b)

    ? ? ? ? return self.array[:num]


    f = Fib()

    print(f(10))

    查看全部
  • 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 '{}/{}'.format(self.p, self.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 __truediv__(self, r):

    ? ? ? ? return Rational(self.p * r.q, self.q * r.p)


    r1 = Rational(1, 2)

    r2 = Rational(1, 5)

    print(r1 + r2)

    print(r1 - r2)

    print(r1 * r2)

    print(r1 / r2)

    查看全部
  • class Fib(object):

    ? ? def __init__(self,n):

    ? ? ? ? self.n = n

    ? ? ? ? self.fib_list = [1,1]

    ? ? ? ? if n == 1:

    ? ? ? ? ? ? self.fib_list=[1]

    ? ? ? ? elif n == 2:

    ? ? ? ? ? ? self.fib_list=[1,1]

    ? ? ? ? else:

    ? ? ? ? ? ? for i in range(2, n):

    ? ? ? ? ? ? ? ? if(i == len(self.fib_list)):

    ? ? ? ? ? ? ? ? ? ? self.fib_list.append(self.fib_list[i - 1] + self.fib_list[i - 2])

    ? ? def __str__(self):

    ? ? ? ? return str(self.fib_list)

    ? ? def __len__(self):

    ? ? ? ? return len(self.fib_list)

    ? ?

    print(Fib(10))

    print(len(Fib(10)))

    print(len(Fib(10)))

    查看全部
  • class Person(object):

    ? ? def __init__(self, name, gender):

    ? ? ? ? self.name = name

    ? ? ? ? self.gender = gender


    class Student(Person):

    ? ? def __init__(self, name, gender, score):

    ? ? ? ? super(Student,self).__init__(name, gender)

    ? ? ? ? self.score = score

    ? ? def __str__(self):

    ? ? ? ? return f'name:{self.name},gender:{self.gender},score:{self.score}'

    ? ? def __repr__(self):

    ? ? ? ? return self.__str__()


    p = Person('Bob','Male')

    s = Student('Bob','Male',88)


    print(s)

    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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