gpt4 book ai didi

python - 什么可能导致此 Python 代码有时失败?

转载 作者:行者123 更新时间:2023-11-28 20:55:40 27 4
gpt4 key购买 nike

class Websites
default = 'https://google.com'
spotify = 'https://spotify.com'
facebook = 'https://facebook.com'
twitter = 'https://twitter.com'

[...]

from websites import Websites

random_website = random.choice(list(vars(Websites).values()))
browser.get(random_website) # This line fails like 30-50% of the time

请注意,我在这里故意不使用字典,因为我想使用随机值来获取 key 。

调试,我发现它会随机设置成这样: random_website = {getset_descriptor} <attribute '__dict__' of 'Websites' objects>

我真的不确定为什么它不起作用,因为我已经多次测试了所有 URL。

另请注意,此应用程序使用线程——此应用程序有多个实例(通常为 4 个),并且在任何给定时间大约有 1-2 个失败,以防万一。我对 Python 和 Selenium 还是很陌生(老实说,在编码方面仍然没有那么丰富的经验)。如果我可以提供更多可能有用的信息,请告诉我。

最佳答案

变量(网站)

  1. 是一个字典
  2. 里面有各种各样的对象,大部分都是继承自object

如果你打印它,你会看到各种各样的东西,比如未绑定(bind)的方法和其他普通的对象属性。发生这种情况是因为对象的 __dict__ 自动获取由 type 元类分配的一些默认元素。所有这些属性都应该是 double 。

因此您有两个选择:

  1. 坚持您当前的类(class)并过滤掉 duders:

    items = [v for k, v in vars(Website).items() if not k.startswith('__')]

    这不是推荐的方法。

  2. 只需使用只包含您想要的内容的普通词典即可。无论哪种方式,您都在调用 values。如果您真的不需要标签,只需使用列表即可。

关于python - 什么可能导致此 Python 代码有时失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com