繁体   English   中英

有没有办法在不同的 class 中设置一个等于变量的值,并让它保持第一次运行的值而不必每次都运行?

[英]Is there a way to set a value equal to a variable in a different class and have it keep the value from the first run and not have to run everytime?

我有两个课程,一个是使用 selenium 来抓取 25 个不同的页面,这需要很长时间。 我有另一个 class 需要 1 秒才能运行,但它从另一个 class 调用一个变量。 我希望 self.numbers 等于 data.scores 并以某种方式保持值设置,以便测试只需要一秒钟。 永远需要的 class 是 AllData() ,我希望 self.numbers 持续存在而不必复制和粘贴打印的值。

from collections import defaultdict
from data import *

class Test:
    def __init__(self,):
        data = AllData()
        self.numbers = data.scores

我不确定我是否完全理解。 使用 class 变量会解决您的问题吗? 这意味着您可以调用当前值

class a:
    var = {'init':'has', 'not':'run'}
    
    def __new__(cls):
        cls.var = {'new has':'run'}
        return super(a, cls).__new__(cls) 
    
    def __init__(self):
        self.var['so has'] = 'init'

class b:
    def __init__(self, obj):
        self.sav = obj.var

使用示例:

>>> b(a).var
{'init':'has', 'not':'run'}

>>> b(a()).var
{'new has': 'run', 'so has': 'init'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM