Mam dziwny problem. Wywołuję tę samą metodę przeciwko instancjom klasy i działają dobrze. Ale gdzieś na linii uruchamiania programów tracę odniesienie do obiektu i teraz pokazuje, że zamiast tego próbuję wywołać moją klasę. Oto, co widzę w debugerze dla dobrego połączenia:
<Move.Move object at 0x0000000003F362E8>
(odniesienie do obiektu)
Ale później po prostu dostanę
<Move.Move class>
(odniesienie do klasy)
Jak czasami tracę odwołanie do obiektu i zamiast tego otrzymuję odwołanie do klasy.
Słynne ostatnie słowa. Sprawdziłem swój kod z plikami zmian i nie widzę żadnych zmian w tym obszarze.
Wszelkie przemyślenia i sugestie są mile widziane.
Kod zgodnie z żądaniem. Mam nadzieję, że to pomoże.
for move in moves:
if move.targetStack is not None:
t = t+1
bestMove = move #Just need to have one to compare to
if t==0:
break
try:
for move in moves:
if move.targetStack is None:
continue
elif move.highCard.rank > bestMove.highCard.rank:
P.S. Zamiast tego wywołuje AttributeError. Ale ma tę samą przyczynę odwoływania się do klasy Move, a nie do instancji. Działa przez około 6 pełnych cykli przed zerwaniem.
1 odpowiedź
Znalazłem mój problem. To była kwestia kapitalizacji. W moich przypadkach było to przypisanie w Move (nazwie klasy) zmiennej bestMove. Czasami brakuje mi języków bezpiecznych dla pisania!
Podobne pytania
Nowe pytania
python-3.x
W przypadku pytań dotyczących programowania w języku Python, które są specyficzne dla wersji 3+ tego języka. Użyj bardziej ogólnego tagu [python] we wszystkich pytaniach Pythona i dodaj ten tylko, jeśli twoje pytanie dotyczy wersji. Użyj znaczników [python-2.x] w pytaniach o Python 2.