在類中宣告屬性

2021-10-25 15:32:50 字數 1822 閱讀 3028

在類中宣告屬性

這裡我們想要強調乙個重要的傳統

python

編碼和kivy

之間的不同點,以及這個改變的用途。

【做好準備】

我們要記得在

python

中宣告屬性的傳統形式。通常,如果我們想要在

python

中宣告乙個屬性,我們會按照下面的方式來做。

class myclass(object):

def __init__(self):

super(myclass,self).__init__()

self._numeric_var = 1

@property

def numeric_var(self):

return self._numeric_var

我們宣告了乙個數字

1,鑑於此,如果我們在

python

的編譯器中使用

myclass().numeric_var

,那麼我們將得到返回值1。

【如何做】

現在,在

kivy

中宣告這個屬性,我們遵循這些步驟: 1.

匯入kivy

和它的屬性 2.

定義這個類 3.

呼叫kivy

的屬性,在這個例項中,使用數字1

import kivy

from kivy.event import eventdispatcher

from kivy.properties import *

class myclass(eventdispatcher):

numeric_var = numericproperty(1.0)

【怎樣執行的】

這個後面的理念就是您從

kivy

的屬性繼承了宣告,從而減少了**的行數。

為了使用他們,你不得不在乙個類的層面來宣告。也就是直接在類裡面,而不是在任何類的方法中。a

屬性是乙個類的屬性,這是乙個會自動建立例項的屬性。每乙個屬性,預設的,會提供乙個

on_事件,無論何時這個屬性的狀態或者數值被改變,它都會被呼叫。還有一些別的要指出的的是

numericproperty

接受所有

python

的數字值:

ints, floats,

和longs。

通常,在建立乙個類的例項的時候,

kivy

classname(property=newvalue).

【還有更多】

他們幫助你:

輕鬆的操控在

kv語言中定義的小部件

自動的監測任何改變

檢查和驗證數值

優化記憶體管理

kviy f

numericproperty

數字屬性 f

stringproperty 

文字屬性 f

listproperty    

列表屬性 f

objectproperty

控制項屬性 f

booleanproperty

布林屬性 f

boundednumericproperty 

數字連線屬性 f

optionproperty 

選擇屬性 f

referencelistproperty 

參考清單屬性 f

aliasproperty   

別名屬性 f

dictproperty   

辭典屬性

【還看看】

pattern.html

第26條 勿在分類中宣告屬性

屬性是封裝資料的方式 參見第6條 屬性只是定義例項變數及相關訪問方法所用的 語法糖 所以也應遵循同例項變數一樣的規則。分類機制,應該將其理解為一種手段,目標在於擴充套件類的功能,而非封裝資料。儘管從技術上說,分類裡也可以宣告屬性,但這種做法應該盡量避免。原因是 除了 class continuati...

在子類中重用父類的屬性

在子類派生出的新的方法中重用父類的方法,有兩種實現方式 一 指名道姓 不依賴繼承 class hero def init self,nickname,life value,aggresivity self.nickname nickname self.life value life value se...

C 中類的宣告

可以宣告乙個類而不定義它 class screen declaration of the screen class 這個宣告,有時候被稱為前向宣告 forward declaration 在程式中引入了類型別的screen.在宣告之後,定義之前,類screen是乙個不完全型別 incompete t...