標籤:

黃哥Python 告訴你類到底是一個啥東東。

類定義

在面向對象程序設計,類(英語:class)是一種面向對象計算機編程語言的構造,是創建對象的藍圖,描述了所創建的對象共同的屬性和方法。

類的更嚴格的定義是由某種特定的元數據所組成的內聚的包。它描述了一些對象的行為規則,而這些對象就被稱為該類的實例。類有介面和結構。介面描述了如何通過方法與類及其實例互操作,而結構描述了一個實例中數據如何劃分為多個屬性。類是與某個層[1]的對象的最具體的類型。類還可以有運行時表示形式(元對象),它為操作與類相關的元數據提供了運行時支持。

支持類的編程語言在支持與類相關的各種特性方面都多多少少有一些微妙的差異。大多數都支持不同形式的類繼承。許多語言還支持提供封裝性的特性,比如訪問修飾符。類的出現,為面向對象編程的三個最重要的特性(封裝性,繼承性,多態性),提供了實現的手段。

********** 上面的文字來源於維基百科**********

黃哥換一個角度去談類的問題,這樣有利於初學者掌握類的知識。

可以簡單粗暴的認為, 類 = 屬性 + 方法, 類是一種定義新的數據類型的機制。定義了類,可以像編程語言內置的數據類型一樣使用它。

下面的例子,Java 和 Go 語言這樣的強類型化的語言, 變數必須指定數據類型,

自定義的Student 類型,就像int 類型一樣,可以定義自己的數組。

看Java 代碼

public class Student {n public String name;n Student(String name){n this.name = name;n }n public static void main(String [] args) {n int n = 3;n Student [] stu = new Student[n];nn stu[0] = new Student("Python");n stu[1] = new Student("Java");n stu[2] = new Student("Go");nn for (Student var :stu ){n System.out.println(var.name);n }nnn }n}n

看Python 代碼

# coding:utf-8nn 黃哥Python培訓 黃哥改寫nnnnnclass Student:nn def __init__(self, name):n self.name = namennnnstu_lst = [Student("Python"), Student("Java"), Student("Go")]nfor stu in stu_lst:n print(stu.name)n

看Go 語言代碼

package mainnnimport "fmt"nntype Student struct {ntname stringn}nnfunc main() {ntvar stu [3]Studentntstu[0] = Student{nttname: "Java",nt}ntstu[1] = Student{nttname: "Python",nt}ntstu[2] = Student{nttname: "Go",nt}nntfor _, val := range stu {nttfmt.Println(val.name)nt}nn}n

部分免費python免費視頻

pythonpeixun/article

216小時學會python

pythonpeixun/article

推薦閱讀:

敲敲級簡單的鑒別H圖片的小程序
高效靈活的概率建模方法基於Python
為什麼感覺django裡面class based view很難呢?
Matplotlib的大新聞

TAG:Python |