最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?class類@staticmethod及@classmethod區(qū)別淺析

 更新時(shí)間:2023年07月25日 16:45:46   作者:xxxxxxxx  
這篇文章主要為大家介紹了Python?class類@staticmethod及@classmethod區(qū)別淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

入學(xué)不久之后,我就在想,對于學(xué)校的這么多人,這么多教師,這么多學(xué)生,以及其他種種事物,能否對應(yīng)的做一套"系統(tǒng)"下來呢?

隨之也跟著思考了起來。

設(shè)計(jì)

好了,最直觀的映入大腦的就是三個(gè)實(shí)體:

人、教師、學(xué)生。

這三個(gè)實(shí)體分別有對應(yīng)的feature屬性以表示其為人/教師/學(xué)生。

由此,得到以下三個(gè)class。

class Person():
    FEATURE = 'P'    
    def __init__(self):
        pass
class Teacher(Person):
    FEATURE = 'T'
    def __init__(self):
        pass
class Student(Person):
    FEATURE = 'S'    
    def __init__(self):
        pass

然而,作為學(xué)生代表的我,絕對不允許老師混入進(jìn)來充當(dāng)間諜。所以,必須給學(xué)生類提供一個(gè)方法以判斷是否為學(xué)生。那么,對于這個(gè)方法,僅需要從Student類去調(diào)用即可,并非一定需要實(shí)例化的對象。而且,該方法由Student所獨(dú)享,Teacher并不需要判斷是否為學(xué)生。由此,Student改進(jìn)為以下版本。

class Student(Person):
    FEATURE = 'S'    
    def __init__(self):
        pass
    @staticmethod
    def is_student(obj):
        if obj.FEATURE == 'S':            
            return True
        else:
            return False

正在思考的時(shí)候,一位代課老師過來看到了我的大概設(shè)計(jì),然后說,“同學(xué)啊,你介個(gè)設(shè)計(jì)呢,對于我們老師,少了點(diǎn)東西,作為老師,我們有分文理,文理之后還有數(shù)學(xué)...blah..blah..”。
然后我就走神了,對啊,老師還根據(jù)教學(xué)科目分文理呢,有數(shù)學(xué)老師,有音樂老師,有...

class MathTeacher(Teacher):
    TEACHING = 'MATH'
    def __init__(self):
        pass
class DrawingTeacher(Teacher):
    TEACHING = 'DRAWING'
    def __init__(self):
        pass

所以以上為代表的兩個(gè)類就誕生了。至于對于文理的判斷,短暫的思考之后,決定把該功能添加到Teacher類做以判斷。

class Teacher(Person):
    FEATURE = 'T'
    def __init__(self):
        pass
    @classmethod
    def category(cls):
        science_cate = ['MATH']
        arts_cate = ['DRAWING', 'PAINTING']
        teaching = getattr(cls, 'TEACHING', None)
        if teaching in science_cate:
            return 'Science'
        elif teaching in arts_cate:
            return 'Arts'
        else:
            return 'Unknow'

測試

在完成以上初步構(gòu)想之后,決定測試一下所寫代碼是否能按預(yù)期執(zhí)行。

得到如下測試代碼

p = Person()
t = Teacher()
s = Student()
print(Student.is_student(p))    #False
print(Student.is_student(t))    #False
print(Student.is_student(s))    #True

而對于教學(xué)分類的判斷,則有以下兩種情形。

判斷某個(gè)教師  屬于哪個(gè)教學(xué)分類

print(DrawingTeacher.category())    #Arts
print(MathTeacher.category())       #Science
print(Teacher.category())           #Unknow

判斷某個(gè)教師 實(shí)例 屬于哪個(gè)教學(xué)分類

teacher_wang = DrawingTeacher()
teacher_li = MathTeacher()
teacher = Teacher()
print(teacher_wang.category())    #Arts
print(teacher_li.category())      #Science
print(teacher.category())         #Unknow

以上就是Python class類@staticmethod及@classmethod區(qū)別淺析的詳細(xì)內(nèi)容,更多關(guān)于Python staticmethod classmethod的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Pytorch實(shí)現(xiàn)常用乘法算子TensorRT的示例代碼

    Pytorch實(shí)現(xiàn)常用乘法算子TensorRT的示例代碼

    pytorch 用于訓(xùn)練,TensorRT用于推理是很多AI應(yīng)用開發(fā)的標(biāo)配。大家往往更加熟悉 pytorch 的算子,而不太熟悉TensorRT的算子。本文介紹了Pytorch中常用乘法的TensorRT實(shí)現(xiàn),感興趣的可以了解一下
    2022-06-06
  • 使用Python編寫Windows端口映射管理工具

    使用Python編寫Windows端口映射管理工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫Windows端口映射管理工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • 總結(jié)歸納python os庫常用方法

    總結(jié)歸納python os庫常用方法

    這篇文章主要為大家介紹了python os庫常用方法的總結(jié)歸納,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 使用matplotlib畫散點(diǎn)圖的方法

    使用matplotlib畫散點(diǎn)圖的方法

    今天小編就為大家分享一篇使用matplotlib畫散點(diǎn)圖的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 19個(gè)Python?Sklearn中超實(shí)用的隱藏功能分享

    19個(gè)Python?Sklearn中超實(shí)用的隱藏功能分享

    今天跟大家介紹?19?個(gè)?Sklearn?中超級實(shí)用的隱藏的功能,這些功能雖然不常見,但非常實(shí)用,它們可以直接優(yōu)雅地替代手動(dòng)執(zhí)行的常見操作
    2022-07-07
  • 利用Python自制一個(gè)批量圖片水印添加器

    利用Python自制一個(gè)批量圖片水印添加器

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言自制一個(gè)批量圖片水印添加器,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以了解一下
    2022-10-10
  • 談?wù)剬ytorch中的forward的理解

    談?wù)剬ytorch中的forward的理解

    這篇文章主要介紹了談?wù)剬ytorch中的forward的理解,在Pytorch中,forward方法是一個(gè)特殊的方法,被專門用來進(jìn)行前向傳播,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-04-04
  • Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法

    Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法

    這篇文章主要介紹了Python跑循環(huán)時(shí)內(nèi)存泄露的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)

    Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)

    Flask是一個(gè)輕量級的Web應(yīng)用框架, 使用Python編寫。Flask也被稱為 “microframework” ,因?yàn)樗褂煤唵蔚暮诵?,?extension 增加其他功能。
    2014-06-06
  • Python3中configparser模塊讀寫ini文件并解析配置的用法詳解

    Python3中configparser模塊讀寫ini文件并解析配置的用法詳解

    這篇文章主要介紹了Python3中configparser模塊讀寫ini文件并解析配置的用法詳解,需要的朋友可以參考下
    2020-02-02

最新評論

罗甸县| 清苑县| 南木林县| 内黄县| 铜川市| 莎车县| 资阳市| 海门市| 讷河市| 金山区| 伽师县| 漳平市| 奉化市| 琼结县| 沅陵县| 教育| 陆良县| 扬中市| 陆川县| 朔州市| 利辛县| 井陉县| 齐齐哈尔市| 洛隆县| 柳河县| 武陟县| 饶平县| 饶平县| 汶川县| 祁东县| 湘潭市| 胶州市| 平乐县| 安阳市| 北辰区| 扎兰屯市| 自治县| 宁陕县| 宜宾县| 临朐县| 关岭|