在類中宣告屬性
這裡我們想要強調乙個重要的傳統
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...