首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

新手 python 有关问题

2013-07-16 
新手 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

热点排行