Python中類和類的實例化、私有屬性面,以及面向對象的三大屬性

2021-01-07 大葉科技
Python

我們已經學了很多東西了,今天我們來聊一聊Python中類、實例化、私有屬性、封裝,繼承都是些什麼,他們都可以幹些什麼,我們馬上開始吧開發工具:IDLE (Python 3.7 64-bit) 、PyCharm 註:不需要和小編一樣的版本,只要是Python3的版本就可以,語法方面沒有什麼不同的。

人生苦短,我用Python

1.類的定義(__init__方法,基類,self)

類的定義:class ClassName(object):,object是父類名,object是一切類的基類。__init__方法是函數寫在類中就是方法,實例化對象的時候必須調用__init__方法。

類的定義

2.類的屬性

屬性的本質就是變量。

類屬性

也就是說類的屬性就是它們的共有屬性,將他們共同的部分寫在前面可以節省一部分的代碼,使得代碼顯示的更簡潔美觀。實例化化的屬性,就是他們之間的不同部分,這個是不能省略的。如果要從新修改類屬性,以上代碼為列,可以用從新賦值的方法進行操作,即:dog.eye=4,這樣就完成了從新賦值的修改操作。

3.私有化

對於Python中的類屬性,可以通過雙下劃線」__」來實現一定程度的私有化。「 _」和「 __」的使用 更多的是一種規範/約定,沒有真正達到限制的目的。「_」:以單下劃線開頭只能允許其本身與子類進行訪問,(起到一個保護的作用)。「__」:雙下劃線的表示的是私有類型的變量。這類屬性在運行時屬性名會加上單下劃線和類名。「__foo__」:以雙下劃線開頭和結尾的(__foo__)代表python裡特殊方法專用的標識,如 __init__()。

加了下劃線之後eye和leg被保護起來了
單下劃線只隱藏我們可以直接寫出來調用

單下劃線只是隱藏了,但是可以通過直接輸入方法強制訪問到和修改它的參數。

雙下劃線直接完全保護無法外部訪問

萬一有一天我們真的要修改雙下劃線裡面的參數的要怎麼辦?訪問它要怎麼辦?私有化的方法Python提供了一種getLeg的方法查看私有方法,可以在類中進行訪問。

用getLeg方法可以訪問到保護的類方法
查看私有化的參數

那麼問題來了,我們需要修改裡面的數據應該怎麼做呢?用setLeg方法修改私有化屬性的參數,

setLeg方法修改私有化屬性

總結:實現私有化的方法:dog._Animal__leg,的方法實現,查看用print(dog._Animal__leg).雙下劃線是主動在leg前加了一個Animal的類名,所以我們看不到。還可以dog._Animal__leg=7,直接修改leg。

4.面向對象的三大特性:封裝、繼承、多態。

封裝:def函數就是一個封裝,將所有屬性和方法封裝到一個類之中。用的時候pip一下就行。

封裝
繼承

當出現相同的方法的時候,現在的會覆蓋之前的值。可以繼承Animal的類,這樣可以提高寫代碼的效率。「class People( Animal):」在括號內寫入類名就是繼承。

多態就是同一指令做出的不同反映

Python中是通過重寫的方式支持多態的,Amerca、chinses、Japen三個方法都重寫了speak的方法。

三個方法都從寫speak的內容

今天就為大家分享到這裡,因為四一邊學習一邊整理,大家有什麼建議可以提出來,大家一起交流進步。大家加油!

相關焦點

  • Python類的概念、定義、屬性、繼承
    通過面向對象的方法,更利於用人理解的方式,對複雜系統進行分析、設計與編程。同時也提高了系統的可維護性,可擴展性,可重用性。(就是使編程的思維,更接近與人的思維和認知)面向對象編程的關鍵,就是類的定義。類是對現實生活中一類具有共同特徵的事物的抽象。
  • python 類(3) 私有屬性/方法
    慢慢努力吧內容提要類中的__變量python中,在類的定義中在變量名前加雙下劃線的變量,稱為類的私有屬性,其本意是不讓類的實例訪問變量class MyClass(object): def __init__(self): self.
  • 從零入門量化交易系列-python的面向對象
    1、面向對象基礎概念類(Class): 用來描述具有相同屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。
  • Python類和對象-給你介紹個對象?
    ~~此對象非彼對象,面向對象(Object Oriented)是一種編程的思想,而不是一種程式語言,而Python也是支持面向對象的語言。面向對象的核心是抽象、繼承、多態。 在面向對象思想中,一切皆是對象,每個對象都有它的屬性個方法,每個對象都可以通過消息互相交互。
  • JavaScript-面向對象中有哪些屬性和方法?
    它可能包含數據、屬性、與方法。對象則指的是類的實例。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟體的重用性、靈活性和擴展性,對象裡的程序可以訪問及經常修改對象相關連的數據。舉個最簡單點的例子來區分 面向過程和面向對象有一天你想吃魚香肉絲了,怎麼辦呢?
  • 全面深入理解 Python 類與對象
    -中.html類屬性和實例屬性查找順序屬性:在內部定義的方法或者變量使用代碼:class magic: a = 'langzi' def __init__(self,x): self.x = x def run(self): return
  • Python入門基礎之面向對象二:類和實例、方法
    前面一篇文章我介紹了python面向對象的基本知識,連結在最下面。初步解釋了面向對象和面向對象的優點,今天就開始正式用代碼來展現面向對象。1、利用class創建類Python中,創建類的語句是如下所示先解釋一下,class後面跟的是類名,括號裡面是基類(也成為父類)python3中默認繼承object。
  • 如何理解python中的類和對象?
    什麼是類和對象類和對象,在我們的生活中其實是很容易找例子的。類是一種把對象分組歸類的方法。比如動物,植物就可以看作是類,而大象,獅子就可以看作一個動物類中的對象;花,草可以看作是植物類中的對象。為什麼大象和獅子就劃分為動物類,花和草就劃分為植物類呢?
  • Python類的屬性和方法
    在定義類時,經常需要抽象出它的屬性,並定義在類的主體中。下面就來介紹與類屬性相關的內容。常量屬性在類中定義的屬性有常量屬性和成員屬性之分。成員屬性成員屬性是抽象出來的類屬性,成員屬性不能直接被外部訪問或修改,需要通過get和set方法來訪問或修改屬性值,成員屬性一般聲明為私有變量,禁止外部直接訪問。
  • 自學C 之路3——面向對象(類)
    面向對象面向對象的概念最早出現在Simula 67中,流行於C++,在Java等面向對象語言相繼誕生之後達到高峰。面向對象的誕生是軟體發展的必然選擇。面向對象的基本概念主要有類、封裝、接口和對象創建類並實例化
  • python面向對象中的self,cls,staticmethod,classmethod
    一開始我並沒有get到這種做法有什麼特別妙的地方,看了眾多大佬的解讀,總結出:•減少實例化對象的開銷,如果方法沒有用到實例化的任何屬性和方法,推薦使用靜態類方法@staticmethod•屬於類的方法放到類裡面,利於組織代碼,容易閱讀。
  • Python面向對象編程的基本概念
    之後,這種編程技術已被包括Python在內的各種程式語言所採用,如今它的應用幾乎遍及各個領域,例如實時系統,人工智慧和專家系統,客戶端伺服器系統,面向對象的資料庫以及許多其他領域。更多。因此,在本文中,我將解釋Python中的面向對象編程的基本概念。表中的內容什麼是面向對象的編程?
  • Python的私有化屬性
    _age = "年齡" # 受保護的屬性(proteced),類裡面或者是子類中可以訪問該變量 self.__salary = "工資" # 私有變量, 只能在當前類裡面訪問 print(self.
  • 面向對象基礎 - Class使用及三大特性
    面向過程與面向對象的區別面向過程 Procedural programming在實際生活中,當我們遇到一個問題需要解決時,我們會進行一系列的工作來解決問題.面向對象可以看作一種在程序中包含各種獨立而又互相調用的對象的思想.把經常用到的功能變成一個百寶箱,裡面有數據和功能(函數),需要用的時候就調用生成一個實例.類 Class在Python中使用class關鍵字定義類,類裡可以存放各種數據和函數.
  • 黑馬程式設計師:Python封裝、繼承和多態以及類方法等習題
    習題總結:本文的習題繼續面向對象編程的知識點,包括面向對象的三大特徵,圍繞類屬性和實例屬性,還有類的方法和靜態方法。通過本章內容的學習複習,大家對面向對象應該會有比較深入的了解了。為以後的開發奠定好紮實的面向對象編程思想。如果有需要答案的小夥伴依舊是轉發後評論獲取。
  • 黑馬程式設計師:Java中類與對象的關係,類的封裝和使用等習題
    習題總結:本文習題主要是圍繞面向對象的基礎。首先是面向對象的思想,之後就是類與對象之間的關係,類的封裝和使用。另外也會涉及到構造方法的定義與重載,this和static關鍵字的使用;其次還有三種內部類的定義以及應用場景等。熟練掌握好這些知識,有助於學習後面的內容,並且深入理解面向對象的思想,對以後的實際開發也是大有幫助。有需要本文習題答案的同學,可以轉發文章並且留言獲取。
  • python入門第十課:面向對象的類和實例簡介
    本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes從這節開始介紹Python面向對象的編程方法,面向對象的方法有很多好處,讓代碼更容易共享,降低代碼耦合度,提高編程的效率等等。
  • python動態添加類對象成員:變量、函數
    一般類對象新增變量或方法的過程在面向對象(OOP)的編程方法中,如果需要給實例化的類對象新增方法或者屬性,一般都是在class類的定義中新增內容,然後才能用類對象來調用新增的方法或變量。如在C++中:C++類新增成員然而在python中給類對象新增變量或者方法並不需要對原始類定義進行重新修改,隨時都可以給類對象新增成員。
  • 教你學習:Python-100-Days-08/09合集 類與對象
    教你學習: Python-100-Days-08/09合集 類與對象本項目是參考項目內容,進行個人理解,和原有項目有出入,如想了解詳情,請自行百度去搜索項目面向對象的支柱面向對象有三大支柱:封裝、繼承和多態。
  • 史上最全 Python 面向對象編程
    類和和類的實例(也稱對象)是面向對象的核心概念,是和面向過程編程、函數式編程的根本區別。並不是非要用面向對象編程,要看你的程序怎麼設計方便,但是就目前來說,基本上都是在使用面向對象編程。類的基本用法面向對象是通過定義class類來定義,這麼說面向對象編程就是只使用class類,在class類中有封裝,繼承的功能,並且還可以構造要傳入的參數,方便控制。