【问题标题】:python: importing class from another filepython:从另一个文件导入类
【发布时间】:2017-10-24 09:28:09
【问题描述】:

我有 2 个文件,一个名为 data.py,另一个名为 main.py

代码data.py:

class data24:
    w = 75

代码 main.py:

import data    
lala = data24
print(lala.w)

它给了我两个错误:“数据”已导入但未使用和“data24”未定义。

我已经在目录中放了一个空的init.py文件。

我做错了什么?

顺便说一句,它正在打印正确的信息。

【问题讨论】:

    标签: python oop


    【解决方案1】:

    为了您自己,请阅读基本的 Python 教程。 您的代码中有几个基本错误。

    1. 您的意思可能是w 是一个实例属性,所以它应该在__init__ 方法中初始化。

    2. data24 未定义。您需要指定它来自data

      data.data24
      
    3. 要初始化实例,您需要使用()


    class data24:
        def __init__(self):
            self.w = 75
    


    import data    
    
    lala = data.data24()
    print(lala.w)
    

    【讨论】:

    • 我不会假设w 应该是实例属性。也许希望成为一个类属性。尽管如此,这是一个很好的观点。
    【解决方案2】:

    data24 是一个类。要使用它,您需要先创建它的一个对象。

    喜欢lala = data24()

    现在laladata24 的一个实例。您现在可以对其进行操作了。

    【讨论】:

    • data24() 仍然会导致错误“data24 is undefined”
    【解决方案3】:

    我们分析一下你main.py中的代码,发现错误:

    import data
    

    您在这里导入了data。 之后你声明一个变量lala:

    lala = data24
    

    但是data24 来自哪里?它来自data。如果你想调用它,你必须将该行调整为:

    lala = data.data24
    

    现在它应该可以工作了,但可能不像您预期​​的那样。那是因为您将类data24 分配给lala。也许您更喜欢实例化像data.data24() 这样的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      相关资源
      最近更新 更多