第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

python 類設(shè)計(jì)的疑惑

python 類設(shè)計(jì)的疑惑

翻閱古今 2019-02-07 17:17:17
本人初學(xué)python, 在練習(xí)代碼的時(shí)候想到一些問題, 如下:現(xiàn)在有一個(gè)User類, 抽象表示每一個(gè)user, 可以有一些屬性, 比如這樣:class User:     def __init__(self, form):         self.name = form.get('name', '')         self.password = form.get('password', '')現(xiàn)在有需求要得到所有的user實(shí)例, 目前有兩種方法, 如下:法一:再創(chuàng)建一個(gè)UserModel類, 保存了所以的user, 并且可以進(jìn)行增刪改查, 比如這樣:class UserModel:     def __init__(self)         self.users = []         def all(self):         return self.users法二: 直接在User類上面進(jìn)行, 具體表現(xiàn)為使用classmethod, 比如這樣:class User:     def __init__(self, form):        self.name = form.get('name', '')        self.password = form.get('password', '')          @classmethod    def all(cls):         users = [cls(form) for form in forms]        return users兩種方法都可以實(shí)現(xiàn)相同的功能, 請問各位前輩哪種方法更好一點(diǎn), 或者有沒有更好的實(shí)現(xiàn)方法? 若能解答, 不勝感激!
查看完整描述

1 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

我覺得可以在 __new__ 中對實(shí)例進(jìn)行注冊到一個(gè)類變量中

class User:
    users = []    def __new__(cls, *args, **kwargs):
        instance = super().__new__(cls, *args, **kwargs)
        cls.users.append(instance)        return instance
print(User.users)


查看完整回答
反對 回復(fù) 2019-02-21
  • 1 回答
  • 0 關(guān)注
  • 553 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號