新手 python 有关问题
新手 python 问题有一模块 test.pydef getCircleArea(r):这是一个测试的例子return 3.14*r*r我在pyt
新手 python 问题 有一模块 test.py
def getCircleArea(r): """这是一个测试的例子""" return 3.14*r*r我在python 3.3.2 shell中,这样
>>>import test
>>>print(test.getCircleArea.__doc__)
结果总是显示None
求解,谢谢。
[解决办法] 你import test后
然后输入help(test)
看test到底导进去了没 built-in本身也有test的
如果发现没导进去 就把test放到库目录
或者切换工作目录到你test的目录然后重新导入
[解决办法] 如果是系统的test模块,应该没有getCircleArea函数,会报错。我猜你有两个test.py,一个有docstring,一个没有。看看你的当前目录下的test.py是什么样的,下面的命令可以输出你的当前工作目录。在你的python shell中运行:
import os print(os.getcwd()) # 输出为当前工作目录[解决办法] 引用: 我打开了两个python 3.3.2 shell. 一个用于交互式调试,一个用于编辑一个hello.py文件 用shell编辑一个hello.py文件,这是什么意思?shell是指idle的一个窗口?
引用: 我发现在hello.py中修改doc string后保存。再在交互式shell中使用 print(hello.getArea.__doc__)结果显示的还是上次的doc string内容。 修改后的文件要加载进该shell(通常是用import或者reload),才会起作用。你下面提到的开一个新shell当然也可以。
引用: 只有在关闭shell后,再开启或是使用Restart shell后再执行 print(hello.getArea.__doc__) 才可以显示正确的结果。 这和我理解的解释型语言似乎不一样啊。如javascript,修改后即可以执行。 难道python缓存运行结果? 修改后(不经编译)可直接执行(解释型语言的特点),和修改后的程序自动执行不是一回事。javascript的新程序也要加载后才起作用。
[解决办法] hello.getArea 的用法说明你 import 了
无论你怎么改显示总是 import 时的内容,除非重载一次
[解决办法] import only import the code once
unless you explicitly reload it