亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 類裝飾器

系統 1751 0

類裝飾器

propety

property是一種特殊的屬性,訪問它時會執行一段功能(函數)然后返回值

          
            class Student:
    def __init__(self,name,birth):
        self.name = name
        self.birth = birth

    @property     # 將一個方法偽裝成屬性
    def age(self):
        import time
        return time.localtime().tm_year - self.birth
alex = Student('alex',1930)
print(alex.age)   # 名詞
          
        

為什么要用property

將一個類的函數定義成特性以后,對象再去使用的時候obj.name,根本無法察覺自己的name是執行了一個函數然后計算出來的,這種特性的使用方式 遵循了統一訪問的原則

除此之外,看下

ps:面向對象的封裝有三種方式:
【public】
這種其實就是不封裝,是對外公開的
【protected】
這種封裝方式對外不公開,但對朋友(friend)或者子類(形象的說法是“兒子”,但我不知道為什么大家 不說“女兒”,就像“parent”本來是“父母”的意思,但中文都是叫“父類”)公開
【private】
這種封裝對誰都不公開

          
            class Circle:
    def __init__(self,r):
        self.r = r

    @property
    def area(self):   # 面積更像是圓的屬性
        return 3.14*self.r**2

    @property
    def perimeter(self): # 周長更像是圓的屬性
        return 2*3.14*self.r

c = Circle(10)
print(c.area)
print(c.perimeter)
          
        

staticmethod

          
            class Staticmethod_Demo():
    role = 'dog'

    @staticmethod
    def func():
        print("當普通方法用")

Staticmethod_Demo.func()


class Student:
    def __init__(self,name):
        self.name = name
    @staticmethod     # 聲明login方法是一個靜態方法 ,不必傳任何默認的參數
    def login(flag):
        print('登錄程序',flag)
        username = input('>>>')
        stu = Student(username)
        return stu
# 要想調用login 必須現有對象
# 要想創建對象 必須用戶先輸入名字
# 得調用登錄之后才開始input

# 不必實例化就可以調用的login方法 不需要傳遞對象作為參數,就定義這個方法為靜態方法
obj = Student.login(flag = True)  # 用類名可以直接調用這個方法了
print(obj.__dict__)
          
        

classmethod

          
            class Manager:
    def __init__(self,name):
        self.name = name
    @classmethod     # 裝飾當前這個方法為一個類方法,默認傳參數cls,表示當前所在的類名
    def login(cls):
        username = input('>>>')
        stu = cls(username)
        return stu

obj = Manager.login()  # 用類名可以直接調用這個方法了
print(obj.__dict__)
          
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美色婷婷| 四虎影院国产精品 | 久久在线观看免费视频 | 国产理论自拍 | 色狠狠婷婷97 | 91手机看片国产永久免费 | 变态捡到女婴h养成调教 | 亚洲精品第一区二区三区 | 亚洲综合专区 | 视频久久精品 | 九九成人| 性久久久久久久久久 | 久久er99热精品一区二区 | 国产a区| 青青青国产精品国产精品久久久久 | 天天成人 | 日韩中文字幕久久精品 | jizzz亚洲美女 | 国产一级一级一级成人毛片 | 99久久免费国产精品特黄 | 一级二级毛片 | 九九精品在线播放 | 国产三级不卡 | 青青青视频自偷自拍视频1 青青青手机版视频在线观看 | 成人夜色香网站在线观看 | 波多野结衣中文字幕一区二区三区 | 亚洲情区 | 在线有码| 久久久久久亚洲精品不卡 | 日本欧美视频在线 | 国产热热| 日韩欧美亚洲综合一区二区 | 亚洲第一成年人网站 | 久久一级片 | 国产99精品视频 | 亚洲成人在线免费 | 99久久亚洲精品影院 | 精品美女在线观看 | 国产www在线播放 | 亚洲综合欧美在线 | 久久中文字幕日韩精品 |