实例化类的 Python3 问题

Posted

技术标签:

【中文标题】实例化类的 Python3 问题【英文标题】:Python3 issue with instantiating a class 【发布时间】:2019-10-28 18:44:01 【问题描述】:

我正在尝试运行一些示例代码,但实例化类 Blockchain 时出现问题。我最后一次工作 python 是 2.7,我对最后一个 if 语句没有任何问题。

我在没有导入区块链的情况下尝试过,但会产生语法错误。

谁能解释 3.8 的问题是什么?

代码:

    class Blockchain:
    def __init__(self):
        self.chain = []
        self.pending_transactions = []

    def new_block(self):
        # Create a new Block and adds it to the chain
        pass

    def new_transaction(self):
        # Adds a new transaction to the list of transacations
        pass

    @staticmethod
    def hash(block):
        # Hashes a Block
        pass

    @property
    def last_block(self):
        # Returns the last Block in the chain
        pass

    if __name__ == "__main__":
        import Blockchain
        blockchain = Blockchain()
        print(blockchain.chain)

错误: /Users/denisputnam/PycharmProjects/excersize2/venv/bin/python /Users/denisputnam/PycharmProjects/excersize2/blockchain.py 回溯(最近一次通话最后): 文件“/Users/denisputnam/PycharmProjects/excersize2/blockchain.py”,第 1 行,在 类区块链: 区块链中的文件“/Users/denisputnam/PycharmProjects/excersize2/blockchain.py”,第 25 行 导入区块链 ModuleNotFoundError:没有名为“区块链”的模块

Process finished with exit code 1

【问题讨论】:

【参考方案1】:

没关系。最后一个 if 有错误的缩进级别。 :(

【讨论】:

以上是关于实例化类的 Python3 问题的主要内容,如果未能解决你的问题,请参考以下文章

杂谈 论实例化类的第六种方式

在 Python 中实例化类的区别

在Java中获取参数化类的实例[重复]

具有静态(内联)方法的从未实例化类的基类

如何在 javascript 中调用实例化类的函数?

模拟问题:无法实例化类的代理:Microsoft.AspNetCore.Identity.UserManager`