摘要:類方法,第一個參數必須要默認傳類,一般習慣用。特別說明,靜態(tài)方法也可以實現上面功能,當靜態(tài)方法每次都要寫上類的名字,不方便。
Python-類屬性,實例屬性,類方法,靜態(tài)方法,實例方法 類屬性和實例屬性
#coding:utf-8 class Student(object): name = "I am a class variable" #類變量 >>> s = Student() # 創(chuàng)建實例s >>> print(s.name) # 打印name屬性,因為實例并沒有name屬性,所以會繼續(xù)查找class的name屬性 Student >>> print(Student.name) # 打印類的name屬性 Student >>> s.name = "Michael" # 給實例綁定name屬性 >>> print(s.name) # 由于實例屬性優(yōu)先級比類屬性高,因此,它會屏蔽掉類的name屬性 Michael >>> print(Student.name) # 但是類屬性并未消失,用Student.name仍然可以訪問 Student >>> del s.name # 如果刪除實例的name屬性 >>> print(s.name) # 再次調用s.name,由于實例的name屬性沒有找到,類的name屬性就顯示出來了 Student類方法,實例方法,靜態(tài)方法
實例方法,第一個參數必須要默認傳實例對象,一般習慣用self。
靜態(tài)方法,參數沒有要求。
類方法,第一個參數必須要默認傳類,一般習慣用cls。
# coding:utf-8 class Foo(object): """類三種方法語法形式""" def instance_method(self): print("是類{}的實例方法,只能被實例對象調用".format(Foo)) @staticmethod def static_method(): print("是靜態(tài)方法") @classmethod def class_method(cls): print("是類方法") foo = Foo() foo.instance_method() foo.static_method() foo.class_method() print("----------------") Foo.static_method() Foo.class_method()
運行結果:
是類類方法的實例方法,只能被實例對象調用 是靜態(tài)方法 是類方法 ---------------- 是靜態(tài)方法 是類方法
由于python類中只能有一個初始化方法,不能按照不同的情況初始化類,類方法主要用于類用在定義多個構造函數的情況。
特別說明,靜態(tài)方法也可以實現上面功能,當靜態(tài)方法每次都要寫上類的名字,不方便。
# coding:utf-8 class Book(object): def __init__(self, title): self.title = title @classmethod def class_method_create(cls, title): book = cls(title=title) return book @staticmethod def static_method_create(title): book= Book(title) return book book1 = Book("use instance_method_create book instance") book2 = Book.class_method_create("use class_method_create book instance") book3 = Book.static_method_create("use static_method_create book instance") print(book1.title) print(book2.title) print(book3.title)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42675.html
摘要:好吧,事實上,類本身也是實例,當然,它們是元類的實例。中的一切都是對象,它們要么是類的實例,要么是元類的實例,除了。 寫在最前面 一些很重要的知識,我的寫得有點亂,也可以去看這些文章 Python 面向對象(初級篇) Python 面向對象(進階篇) 深刻理解Python中的元類(metaclass) 首先來看一個例子,正常情況下我們定義并且實例一個類如下 class Foo(ob...
摘要:方法綁定方法多重繼承實例化實現了方法和實例的綁調用綁定方法非綁定方法在子類中,父類的方法就是非綁定方法,因為在子類中,沒有建立父類的實例,卻要是用父類的方法。 類 創(chuàng)建類 第一形式 # !/usr/bin/env python # coding=utf-8 class Person(object): #object表示繼承自object類,Python3中可省略次內容 ...
摘要:之所以想寫這個文章是因為碰巧看到網上一篇關于中類屬性及實例屬性區(qū)別的帖子。中屬性的獲取對于屬性,我們通常采用類屬性或實例屬性的形式調用。最關鍵的地方在于兩點理解是如何利用查找樹的機制來模仿類及實例之間的關系理解動態(tài)語言是可以動態(tài)設置屬性的 標題名字有點長。 之所以想寫這個文章是因為碰巧看到網上一篇關于Pyhon中類屬性及實例屬性區(qū)別的帖子。因為我之前也被這個問題困擾過,今天碰巧看到了...
摘要:本文的分享主要圍繞以下幾個方面能做什么常見應用場景介紹如何學習語法基礎實戰(zhàn)面向對象編程實戰(zhàn)練熟基礎小游戲項目的實現與實戰(zhàn)一能做什么一種編程語言往往可以應用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業(yè)務/學習的你或許:一直想要找個時間學一點,但是又不知道該從何下手?本文將從Python能做什么,如何學習Py...
摘要:縮進不一致,會導致運行錯誤。變量變量在使用前必須先定義即賦予變量一個值,否則會報錯數據類型布爾只有和兩個值,表示真或假。 簡介 Python 是一種高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python 由 Guido van Rossum 于 1989 年底在荷蘭國家數學和計算機科學研究所發(fā)明,第一個公開發(fā)行版發(fā)行于 1991 年。 特點 易于學習:Python ...
閱讀 1310·2021-11-22 14:44
閱讀 2445·2021-09-30 09:47
閱讀 1221·2021-09-09 11:56
閱讀 2076·2021-09-08 09:45
閱讀 3953·2021-08-31 09:40
閱讀 1250·2019-08-30 15:52
閱讀 2044·2019-08-30 14:09
閱讀 1578·2019-08-26 17:04