クラス内のいくつかの定数に対していくつかのビット演算を実行しようとしていますが、何らかの理由で、計算された値が保存されていません。
これが私がやっていることです:
class FramePacket(object):
def __init__(self,frame):
self._frame = frame
def create_packet(self):
# Frame ID
FRAME_ID = 0x7
# Commands
CMD_PING = 0x0
CMD_STORE = 0x1
CMD_PLAY = 0x2
CMD_DEMO = 0x3
CMD_CLEAR = 0xE
CMD_WIPE = 0xF
f_data = (FRAME_ID << 4) + CMD_STORE
print "f_data ---> " + str(f_data)
これを実行すると、エラーが発生し、トレースバックに次のように表示されます。
print "f_data ---> " + str(f_data)
NameError: name 'f_data' is not defined
ただし、クラスを使用せずに Python インタープリターでこれを実行すると、期待どおりに動作します。
>>> CMD_STORE = 0x1
>>> FRAME_ID = 0x7
>>> f_data = (FRAME_ID << 4) + CMD_STORE
>>> print "f_data ---> " + str(f_data)
f_data ---> 113
私は何かが欠けていますが、何がわからない...
ありがとう。