1. 程式人生 > >Python 面向對象基礎知識

Python 面向對象基礎知識

方法 .com 有時 border 多態 函數 print align sta

面向對象基礎知識

1.什麽是面向對象編程?

- 以前使用函數

- 類 + 對象

2.什麽是類什麽是對象,又有什麽關系?

class 類:
  def 函數1():
    pass
  def 函數2():
    pass

# obj是對象,實例化的過程
obj = 類()
obj.函數1()

========== 面向對象不好 ============

========== 函數編程好 ==============

- 有時候,函數編程能實現?比較麻煩。

- 面向對象非常的簡單就能實現。

3.什麽時候適用面向對象?

- 1.當多個函數有公共的參數的時候

- 2.根據一個模板創建某些東西

- 3.鏈接服務器,執行命令,關閉

註:面向對象,可以進行更多的修改需求修改。

4.self就是調用當前方法的對象。

- 函數(方法)保存在類裏面。

- 字段保存在對象內存下。

技術分享

5.靜態字段的使用場景。

- 創建的每一個字段都有共同的值,就可以設置為靜態字段。

成員屬性

class Foo:

  def __init__(self,name):

    #普通字段,屬性

    self.NAME = name

    self.Country = "中國"

全局屬性

class Foo:

  #靜態字段,公有屬性

  Country 
= "中國"   def __init__(self,name):     self.NAME = name

技術分享

6.面向對象三大特性,繼承,封裝,多態。

封裝:

- 類中封裝:字段,方法

- 對象中封裝了:普通字段的值

例子

class F1:

  def __init__(self,n):

    self.N = n

    print(F1)

 

class F2:

  def __init__(self,arg1):

    self.a = arg1

    print(F2)

 

class F3:

  def __init__(self,arg2):

    self.b 
= arg2     print(F3) o1 = F1(alex) o2 = F2(o1) o3 = F3(o2) ########### 輸出Alex:o3.b.a.N########### #o1 = F1(‘alex‘) #o2 = F2(o1) #o3 = F3(o2) #print(o3.b.a.N) #執行結果 #alex #註: o3包含o2包含o1包含N賦值alex。

繼承:

例子:

求出結果:對應繼承。

class F1:

   def __init__(self):

      print(F1)

 

    def a1(self):

        print(F1a1)

    def a2(self):

        print(F1a2)

 

 

class F2(F1):

    def __init__(self):

        print(F2)

    def a1(self):

        print(F2a1)

    def a2(self):

        self.a2()

        print(F2a2)

 

 

class F3(F2):

    def __init__(self):

        print(F3)

 

# def a1(self):

# print(‘F3a1‘)

 

def a2(self):

    print(F3a1)

 

obj = F3()

obj.a1()                        

技術分享

多態:

- python:默認支持多態,沒有類型限制

- 多態:多種形態。

7.字段與方法

字段:

普通字段(保存在對象中)

靜態字段(保存在類中)

方法:

普通方法(保存在類中,調用者對象,至少有一個self參數)

class F1:

    ...

    def a1(self):

        print(self.name)

 

obj = F1()

obj.a1 = a1()

# 註:obj 對象內存沒有存入數據,會占用內存。    

靜態方法(保存在類中,調用者類,無需創建對象,可以有任意個參數):

class F1:

    @staticmethod

    def a1():

        print(self.name)

 

F1.a1()

# 註:相當於函數 @staticmethod。

Python 面向對象基礎知識