作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的外部作用域中有一些值无法在 compvals 函数内部访问。我如何访问这些?
def compvals(comp_hits, values):
comp_hits = values
comptest(comp_hits, values)
return
最佳答案
我花了一段时间试图将其拼凑起来。我无法在代码中找到任何附加到 comp_hits 的位置,也许您可以转到您认为 comp_hits.append() 之类的内容可能存在的位置并验证它是否存在。这可能是正在打印而不是保存。我认为您应该尝试使用此作为草稿来重写此代码。这次尝试做这些事情:
1) 尝试构建代码,以便您的函数返回一些内容。您不必返回某些内容,但以这种方式构建代码将使调试变得更容易。
2) 尽量避免使用带有长串 if、elif 和 if-break 的函数。您应该能够找到逻辑上等效但更简单的东西。看起来像这样可能可行,但如果不可行,逻辑就很难调试。
3) 不要调用您在其内部定义的函数。我认为您试图让它从顶部重新启动,在 compshot() 的情况下,如果随机生成的数字生成了先前使用的位置。您可以通过使用 while 循环(未测试)来解决这种情况。
while gen == True:
row = random.randint(1,5)
column = chr(random.randint(65,69))
pos = column+str(row)
column = ord(column)-65
if pos not in already:
gen = False
4)尝试将函数分解为更小的函数。
5) 尝试在辅助函数中采用层次结构。例如,test() 和 pick() 不应调用另一个,反之亦然。
6) 将棋盘保存到字典或数据框中并以这种方式操作它。看起来您可能每次都会重新计算棋盘。我可能是错的。一般来说,最好避免这种情况,因为如果更新板出现问题,您知道该去哪里查找!
这次当你编写每个函数时,你可以传入一些测试用例来看看它是否按预期工作。希望您下次能够添加“X”。抱歉,我无法提供更多帮助。
关于python - 如何在 Python 中不定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584380/
我是一名优秀的程序员,十分优秀!