【问题标题】:Passing variables between classes in different files in python在python中不同文件的类之间传递变量
【发布时间】:2021-06-18 14:32:39
【问题描述】:

我认为标题已经有点解释性了。假设我有一堂课:

# Class in file 1
class Foo(object):
    def __init__(self):
         x = 10

是否可以将变量“x”传递给存储在另一个文件中的另一个类?比如说:

# Class in file 2
class Foo(object):
    def print_variable(x):
         print(x)

【问题讨论】:

  • 不,第一个x 仅限于函数__init__ 的本地范围,不能在其他任何地方使用。首先,这听起来像是一个 XY 问题或非常糟糕的设计。
  • 它们在不同文件中的事实并不重要。这些要么都是从第三个主文件导入的,要么是从另一个导入的。它们成为具有两个不同命名空间的两个不同的类此外,正如@MikeScotty 指出的那样,定义文件 1 Foo.__init__ 的方式, x 是一个临时局部变量,一旦初始化对象就会消失。您是否正在尝试组合类,例如继承?
  • @RufusVS 不,但我可以试试。如果我使用继承,那么“超级”类的所有参数都可以用于“子”类,对吧?

标签: python class variables parameter-passing


【解决方案1】:

您需要从第一个类继承。例如:

class Dog:
    def __init__(self, age):
        self.age = age
  
    def print_age(self):
        print(self.age)

class Cat(Dog):
    def __init__(self):
        Dog.__init__(self, age) 

x = Cat(10)
x.print_age()

显然,这可能不是一个直接的答案,但您可以通过继承做更多事情。

【讨论】:

  • 但是你只需要导入其他类例如:“from file_name import Dog”
猜你喜欢
  • 2018-10-11
  • 2018-09-16
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多