【发布时间】:2018-03-23 18:06:55
【问题描述】:
所以我有这个代码:
import random
class Node():
def __init__(self, name, content):
self.name = name
self.mac_address = self.generate_mac
self.content = content
def generate_mac():
return "%02x:%02x:%02x:%02x:%02x:%02x" % (
random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255)
)
class Switch():
def __init__(self, name, content):
self.name = name
self.file = name + ".txt"
self.content = content
def write_table(self, send_node, recv_node):
f = open(self.file, 'w')
f.write(send_node.mac_address() + " " + send_node.name[-1])
我希望每个节点都有一个固定的 MAC 地址,稍后我可以使用node_instance.mac_address 获取该地址。但每次我这样做时,我都会生成一个新地址。我如何保持它固定?
【问题讨论】:
-
不要每次都随机生成?无论如何,这不是生成有效 MAC 的好方法。
-
在
generate_mac的构造函数中添加括号。它应该变成self.generate_mac() -
谷歌或搜索Stack Overflow生成mac,在整理整个随机与持久位后,看看如何安全地生成随机MAC。
标签: python class variables random constructor