簡體   English   中英

如何在Class中定義帶有值的變量以及如何在其他Class中使用

[英]How define variable with value inside Class and how to use in other Class

外面有變數。 正確的類功能需要變量。 如何在類中移動它並在其他類中使用它?

這工作不錯,但我需要移動STATUS_CHOICES類內部UserDevice和使用STATUS_CHOICESUserDeviceAdmin了。

STATUS_CHOICES = ((0, gettext("disabled")), (1, gettext("allowed")))

class UserDevice(BaseModel):
    """Table with all devices added and owned by users."""

    device_uniqueid = CharField(primary_key=True)
    device_user = ForeignKeyField(User, null=True, backref='userdevices')
    device_name = CharField()
    model = CharField()
    phone = CharField()
    status = IntegerField(choices=STATUS_CHOICES, default=1)
    inserted_at = DateTimeField(null=True)

    def myfunc(self):
        return self.a

class UserDeviceAdmin(ModelView):
    can_create = False
    edit_modal = True
    column_choices = {'status': STATUS_CHOICES}
    column_list = [
        'device_uniqueid',
        'device_user.email',
        'device_name',
        'model',
        'phone',
        'status',
        'inserted_at',
    ]
    column_sortable_list = ('device_uniqueid', 'device_user.email')
    form_ajax_refs = {'device_user': {'fields': ['email']}}

您應該考慮使用可以繼承的父類,由於多重繼承,這在python中很容易:

class Parent_class(object):
    def get_status_choices(self):
        return ((0, gettext("disabled")), (1, gettext("allowed")))


class UserDevice(BaseModel, Parent_class):
    # your implementation...
    status = IntegerField(choices=self.get_status_choices(), default=1)
    # and further implementations....

class UserDeviceAdmin(ModelView, Parent_class):
    # your implementation...
    column_choices = {'status': self.get_status_choices()}
    # and further implementations....

請注意,您最好將父類的名稱更改為域中相關的名稱

把它移到里面:

class UserDevice(BaseModel):
    """Table with all devices added and owned by users."""
    STATUS_CHOICES = ((0, gettext("disabled")), (1, gettext("allowed")))

從其他類訪問它:

class UserDeviceAdmin(ModelView):
    can_create = False
    edit_modal = True
    column_choices = {'status': UserDevice.STATUS_CHOICES}

這就像靜態變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM