Python函数的行为不符合预期

时间:2016-04-27 04:02:23

标签: python

我有一个名为'Learning'的软件包,包含一个空文件__init__.pyhello_calvin.py

hello_calvin.py内容:

def hi_calvin(a, b):
    c = a + b
    return c

hello_john.py内容:

from Learning import hello_calvin

a = hello_calvin.hi_calvin(1,2)
print(a)

但是,打印(a)不会打印任何内容。

我在这里做错了什么?任何帮助表示赞赏!!

编辑:抱歉,我重命名了正确的文件。现在有道理了

3 个答案:

答案 0 :(得分:0)

我认为您应该将文件init.py重命名为__init__.py这是告诉Python将此目录视为包的正确方法。

然后,它应该工作正常。我试过我的电脑,它工作正常。

答案 1 :(得分:0)

我发现问题是什么,我刚刚在PyCharm上移动了+ ctrl f10并运行了 init .py这是空的,因此它什么都没打印。

对不起伙计们!

感谢您的快速回复。

答案 2 :(得分:0)

你本应该收到错误,

ImportError: No module named Learning

因为__init__.py为空。改变一些事情。

  1. 让hello_calvin.py成为一个类。 所以

    Class Hello_calvin:
        def hi_calvin(a, b):
            c = a + b
            return c
    

    并使用班级名称保存文件' Hello_calvin.py'

  2. __ init__.py不应为空。 型

    from Learning import Hello_Calvin
    
  3. 这告诉python它是包目录。

    包目录的名称应为' Learning'。

    另外,' hello_john.py'不应该在学习目录中,因为它正在访问包。

    仔细阅读http://pythoncentral.io/how-to-create-a-python-package/