2014-04-08 3 views
1

값으로 사용하려고 할 때 나는 NumericProperty을 사용하려고하지만 유형의 오류를 얻고있다 내 코드는 내가 오류가이얻기 값

from kivy.properties import NumericProperty 
from kivy.uix.widget import Widget 

class Segment(Widget): 
def __init__(self, segments): 
    super(Segment, self).__init__() 
    self.segments = NumericPropery(segments) 

def build(self): 
for i in range(0, self.segments): 
    # Do something 

과 같은

:

for i in range(0, self.segments): 
TypeError: range() integer end argument expected, got kivy.properties.NumericProperty. 

그래서 대신 self.segments.get()를 사용하여 시도,하지만 난이 오류가 발생했습니다

TypeError: get() takes exactly one argument (0 given) 

apperently get 함수는 <kivy._event.EventDispatcher> 오브젝트 인수

어떤 생각이 어떻게이 문제를 해결 얻을 것으로 기대?

답변

1

클래스 수준에서 속성을 선언해야합니다.

class Segment(Widget): 
    segments = NumericProperty() 

올바른 동작을 제공합니다. 문제는 속성이 인스턴스 별 값을 관리하고 이벤트 루프와 상호 작용한다는 것입니다. 클래스 수준에서 선언하지 않으면 함수가이를 수행하지 않으므로 함수가 NumericProperty 자체 만 볼 수 있습니다 (귀하의 문제입니다).

+0

고마워요! 그걸 수정 한 것 같습니다. –