跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教个 Python 不同 py 文件中的类获取另一个类实例变量的问题
未分類
3 5 月 2020

请教个 Python 不同 py 文件中的类获取另一个类实例变量的问题

请教个 Python 不同 py 文件中的类获取另一个类实例变量的问题

資深大佬 : xiaolinjia 60

标题感觉取的怪怪的,所以还是用代码举个例子吧。

目前有三个 py 文件,当然这里简化了。其中 test2.py 是第三方库的。

test1.py :

import threading from test2 import A  testA = A(1)   class B:     def __init__(self):         self._lock = threading.Lock()      def do_something_1(self):          def callback():             pass          testA.do_something(callback)   

test2.py

class A:     def __init__(self, param1):         self.a = param1         # 初始化很多东西,加载些模型      def do_something(self, callback_func):         while True:             # 想在 reading 之前,获取到 test1.py 中实例的锁,这个可以做到吗             # reading             callback_func()  

test3.py

from flask import Flask, jsonify from test1 import B  app = Flask(__name__)   @app.route('/xxx/') def test1():     b = B()     b.start()     return jsonify({'msg': 'b has started.'})   if __name__ == '__main__':     app.run() 

然后现在想在 test2.py 中的 reading 前获取到 B 类的实例中的 lock 成员,或者其他成员,这个要怎么做到啊,我想半天都不知道要怎么才获取的到,用 globals()和 locals()看了都没有。。

大佬有話說 (2)

  • 主 資深大佬 : xiaolinjia

    之前想到的一个方法是,继承下第三方库的 A 类,然后重载下 do_something 方法,增加多一个参数比如 before。
    然后在 B 类的 do_something1()中,testA.do_something(callback, before=self)。这样就能在 A 类的 do_something()中获取到 A 实例的成员的值,不过个人感觉不太优雅。就当抛砖引玉吧

  • 資深大佬 : bigNewsMaker

    能把 A 类定义为继承 B 类吗?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具