【问题标题】:Import class function variable导入类函数变量
【发布时间】:2021-12-22 04:14:12
【问题描述】:

我正在制作一个 kivy 应用程序,我想将一个类函数变量导入另一个文件。任何人都可以帮我解决这个问题,因为我无法弄清楚。我想要的是以下内容:当 kivy 中的给定间隔等于 1m 时,它将函数 start_1m 作为线程启动。现在在这个 start_1m 中,我定义了一个要在 crypto_data.main() 文件中使用的间隔。如何在我的其他文件中获取此变量?下面是我的代码,有任何问题欢迎提问!提前致谢!

class MyFloat(Widget):


    def check_interval(self):
        intervals = []
        if self.check_id_1m.active:
            intervals.append('1m')
        if self.check_id_3m.active:
            intervals.append('3m')
        if self.check_id_5m.active:
            intervals.append('5m')
        if self.check_id_15m.active:
            intervals.append('15m')
        if self.check_id_1d.active:
            intervals.append('1d')
        if self.check_id_3d.active:
            intervals.append('3d')
        if self.check_id_1w.active:
            intervals.append('1w')
        return intervals

    def get_data(self):
        # print(MyFloat.check_interval(self))
        for i in range(len(MyFloat.check_interval(self))):
            if MyFloat.check_interval(self)[i] == '1m':
                print('1m')
                threading.Thread(target=self.start_1m).start()
            if MyFloat.check_interval(self)[i] == '3m':
                print('3m')
            if MyFloat.check_interval(self)[i] == '5m':
                print('5m')
            if MyFloat.check_interval(self)[i] == '15m':
                print('15m')
            if MyFloat.check_interval(self)[i] == '1d':
                print('1d')
            if MyFloat.check_interval(self)[i] == '3d':
                print('3d')
            if MyFloat.check_interval(self)[i] == '1w':
                print('1w')


    def start_1m(self):
        interval = Client.KLINE_INTERVAL_1MINUTE
        crypto_data.main()
        return interval

我通过执行以下操作进行了尝试,但这要求我输入参数 self.我还尝试了其他一些方法,但无法正常工作。

from main import MyFloat

def get_interval():
    interval = MyFloat.start_1m()
    return interval

【问题讨论】:

    标签: class variables import kivy


    【解决方案1】:

    尝试将get_interval() 变成静态方法:

    @staticmethod
    def start_1m():
        interval = Client.KLINE_INTERVAL_1MINUTE
        crypto_data.main()
        return interval
    

    【讨论】:

    • 是的,这确实适用于导入,但现在我得到一个最大递归深度错误哈哈
    猜你喜欢
    • 2017-11-07
    • 2017-10-15
    • 2021-07-13
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多