python基礎語法難點突破(持續更新)

2020-09-27 09:00:18

python基礎語法難點突破

1.物件導向類的基本使用

知識點:

  • 屬性:類屬性、範例物件屬性
  • 方法:實體方法、類方法、靜態方法
  • 類可以呼叫哪些內容:類屬性、類方法、靜態方法

程式碼範例:

class A(object):
    # 類屬性
    class_a = 20

    def __init__(self):
        # 範例物件屬性
        self.a = 10

    # 實體方法
    def a_print(self):
        print("a_print")

    # 類方法
    @classmethod
    def class_print(cls):
        print('class_print')

    # 靜態方法
    @staticmethod
    def static_print():
        print("static_print")


# 類呼叫類屬性,不能呼叫範例物件屬性
print(A.class_a)
# 使用範例化物件呼叫範例物件屬性
print(A().a)

# 使用類呼叫類方法
A.class_print()
# 使用類呼叫靜態方法
A.static_print()
# 呼叫實體方法的兩種方式
A.a_print(A())
A().a_print()

2.物件導向類的呼叫和屬性

知識點:

  • 在一個類中想要呼叫另一個類的方法和屬性的方法:繼承、屬性賦值的形式

程式碼範例:

class A(object):
    class_a = 20

    def __init__(self):
        self.a = 10

    def a_print(self):
        print("a_print")

    @classmethod
    def class_print(cls):
        print('class_print')

    @staticmethod
    def static_print():
        print("static_print")


# 繼承
class B(A):
    def b_print(self):
        print("b_print")


B().b_print()
B().a_print()


# 屬性賦值的形式
class C(object):
    obj_a = A()

    def c_print(self):
        print('c_print')


# 呼叫A中的方法
C.obj_a.a_print()

3.物件導向super和@property的使用

知識點:

  • super作用:super() 函數是用於呼叫父類別(超類)的一個方法。
  • super使用場景:重寫父類別方法,在父類別方法的基礎上,新增一些業務邏輯
  • 使用@property裝飾器可以直接通過方法名來存取方法,不需要再在後面使用"()"

程式碼範例:

class A(object):

    def a_print(self):
        print("a_print")


class B(A):
    def a_print(self):
        # 呼叫父類別方法
        super().a_print()
        print("add_data")

    @property
    def data(self):
        print("data")


B().a_print()
# 直接以呼叫屬性的形式呼叫方法
B().data