2

クラス内のいくつかの定数に対していくつかのビット演算を実行しようとしていますが、何らかの理由で、計算された値が保存されていません。

これが私がやっていることです:

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

私は何かが欠けていますが、何がわからない...

ありがとう。

4

0 に答える 0