私はPythonでクラスを正しく使用する方法を学ぼうとしています.私はそれにかなり慣れていませんが、このクラスにすべての値の文字列出力を返すことはできません. 理想的には、str(packet) をネットワーク ソケットに挿入できるようにしたいと考えています。
class ARP():
dst_addr = ''
src_addr = ''
type = '\x08\x06'
payload = '\x00\x01\x08\x00\x06\x04\x00'
arptype = '\x01'
src_mac_addr = ''
src_ip_addr = ''
dst_mac_addr = ''
dst_ip_addr = ''
def __repr_(self):
return 'ARP'
def __str__(self):
return dst_addr + src_addr + type + payload + arptype \
+ src_mac_addr + src_ip_addr + dst_mac_addr + dst_ip_addr
p = ARP()
p.dst_addr = router_mac
p.src_addr = random_mac()
p.arptype = '\x02'
p.src_mac_addr = local_mac
p.src_ip_addr = ip_s2n(target_ip)
p.dst_mac_addr = router_mac
p.dst_ip_addr = ip_s2n(router_ip)
print 'PACKET: ', str(p)
return str(p)
このコードは何も出力しません。repr()
私が推測する出力<__main__.ARP instance at 0x2844ea8>
は、それが何をするつもりですか?