天天看點

面向對象程式設計是什麼?淺談Python的一切皆對象,單身狗看過來

作者:RPA自動化

帶你走進 @ 機器人時代

Discover 點選上面藍色文字,關注我們

面向對象程式設計是什麼?淺談Python的一切皆對象,單身狗看過來

Python對象是什麼?面向對象程式設計(Object-oriented Programming,簡稱 OOP)簡單來說就是代碼的封裝。

代碼封裝,其實就是隐藏實作功能的具體代碼,僅留給使用者使用的接口,是以,在程式設計的時候,要了解一些基本的術語:

類:可以了解是一個模闆,通過它可以建立出無數個具體執行個體,但類并不能直接使用,通過類建立出的執行個體(又稱對象)才能使用,在類裡面定義的函數稱為方法,所有的變量稱為屬性。

是以,類方法無法單獨使用,隻能和類的對象一起使用,舉一個簡單的例子:

class person():#定義一個叫person的類
    s='這是一個人類'#定義person的屬性
    def walk(self):#頂一個方法
        print('會走路')#描述這個方法

print('張山',end='')
a=person()#建立一個叫a的類
a.walk()#調用類的方法輸出結果

輸出結果:
張三會走路           

之是以我們用簡單的字母來給變量命名,是為了讓初學者容易看懂。但實際工作中,命名變量、函數及類名,盡量使用有意義的英文單詞來命名,這樣做的好處有兩個:

1、不容易與其他變量混淆;

2、代碼量大的時候,檢查代碼時容易了解變量的含義,進而更容易發現問題。

在Python中有一個特殊的函數,稱之為構造函數:__init__,什麼意思?可以了解為類的自身基本屬性。

我們來修改上面的代碼:

class person():
    def __init__(self):
        print('會走路')

print('張三',end='')
a=person()

輸出結果:
張三會走路           

實際上,我們将‘ 會走路 ’這個方法定義成person這個類的基本方法,是以我們在調用的時候不用再寫一次方法的名字,直接建立對象,新的對象同樣就繼承了類的基本方法。

那麼,我們還可以為person 這個類添加一些屬性,例如:

class person():
    def __init__(self,a):
        print('會走路')
        print(a)

print('張三',end='')
a='是個舞林高手'
w=person(a)

輸出結果:
張三會走路
是個舞林高手           

這樣,我們就給person這個類定義了一個屬性,當然我們也可以把這個屬性定義在類的内部:

class person():
    def __init__(self,a):
        print('會走路')
        print(a)
        self.t='有兩個耳朵'

print('張三',end='')
a='是個舞林高手'
w=person(a)
print(w.t)

輸出結果:
張三會走路
是個舞林高手
有兩個耳朵           

調用的類的基本屬性隻需要寫x.t就可以了,是不是很簡單?

如果我們覺得‘有兩個耳朵’這個屬性有點多餘,我們可以使用del指令删除:del w.t即可:

del w.t
print(w.t)
輸出結果:
Traceback (most recent call last):
  File "E:\Python程式\類的示範.py", line 22, in <module>
    print(w.t)
AttributeError: 'person' object has no attribute 't'           

通過上面的例子,我們注意到有一個self的變量,這個self到底是什麼東西呢?

原來,Python 規定,無論是構造方法還是執行個體方法,最少要包含一個參數,并沒有規定該參數的具體名稱。

之是以将其命名為 self,隻是程式員之間約定俗成的一種習慣,遵守這個約定,可以使我們編寫的代碼具有更好的可讀性(大家一看到 self,就知道它的作用)。

那麼,這個self參數具體有什麼作用呢?就剛才這個例子,我們定義了一個person類,為了友善大家了解,我們稱之為:人類。

我們将它執行個體化以後,它就是一個個的人類,如張三、李四等等。但是人類都有共同的基本屬性和方法,怎麼區分張三和李四的不同呢?

這就需要用到self這個參數來定義了:

#self的應用
class person:
    def __init__(self,a):
        self.name=a
        print(a)
s=person('王五')
print(s.name)
輸出結果:
王五
王五           

是以,我們發現無論是類的屬性或者方法,我們都不能在外部直接使用它們,可以把類看成一個獨立的空間。

是以,在類裡面函數外面定義的屬性和變量都被稱為類屬性或類變量;在函數内定義的以self.變量名的方式定義的稱為執行個體屬性或變量;以變量名=變量值的方式定義的外面稱為局部屬性或變量。

我們來看看下面的代碼:

class see:
    s='這是類變量'
    def __init__(self):
        print('這是類方法')
    def saw(self):
        self.s1='這是執行個體變量'
        s2='這是局部變量'
        print('這是執行個體方法')
        print(s2)

w=see()
print(w.s)
w.saw()
print(w.s1)
輸出結果:
這是類方法
這是類變量
這是執行個體方法
這是局部變量
這是執行個體變量           

如果定義s1的時候前面沒有加上self.的話就代表這個變量是局部變量,在外面是無法調用的。

Python類的基本概念和用法,我們就介紹到這裡。後面我們将學習Python類的其他一些用法。

堅持學習,這樣每天都能進步一點點!

往期回顧:

  • 來來來,送你一個金牌銷售機器人,7X24小時不休,不要工資免費用!
  • RPA技術在旅行社銷售業務中如何鳳凰涅槃??
  • 【工資翻三倍】系列:一招搞定九宮圖檔切割機器人,讓你的朋友圈更加炫酷!

本文引用和摘錄相關内容,請聯系侵删。

- END -

最後,文章有幫助到你的話【點贊在看】

激勵我們分享更多的幹貨!