V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mokeyjay
V2EX  ›  Python

菜鸡 PHPer 初学 pytho3,想问个关于函数注释的问题

  •  
  •   mokeyjay ·
    mokeyjay · 2017-02-26 14:05:04 +08:00 · 2824 次点击
    这是一个创建于 2609 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初学 python3 , IDE 是 PyCharm , PHP IDE 是 phpStorm

    在 PHP 中,函数或方法可以加类似这样的注释( PHPDoc )

    /**
    * 连接到驱动
    * @param string $host
    * @param string $port
    * @return mixed
    */
    

    IDE 可以识别并给出相应的提示、补全等,非常方便

    但是在 python 里没有发现有相应的规范

    搜了一下,都是些#单行、三引号多行之类,没有发现有类似 JavaDoc 、 PHPDoc 之类的注释规范,这写起代码来就很蛋疼啊

    是 python 本身的问题吗?还是我没找到?

    17 条回复    2017-02-26 23:48:52 +08:00
    introom
        1
    introom  
       2017-02-26 14:12:09 +08:00 via Android
    对,自身问题,大家都在乱搞。 pep257 没有强制规定什么。
    twisted 用 pydoctor, 个家都有自己的,不过八九不离十,找个靠谱的模仿就行了。
    kindjeff
        2
    kindjeff  
       2017-02-26 14:15:13 +08:00   ❤️ 1
    pycharm 支持好几种的,我用的和你写的 php 注释方法差不多。你可以搜一下 Pycharm type hinting
    param
        3
    param  
       2017-02-26 14:16:38 +08:00
    谢邀。
    三引号写成的注释可以通过 xxx.__doc__的方式获得。
    kindjeff
        4
    kindjeff  
       2017-02-26 14:16:46 +08:00   ❤️ 1
    mokeyjay
        5
    mokeyjay  
    OP
       2017-02-26 14:20:18 +08:00
    @introom #1 原来如此,好吧
    @kindjeff #2 感谢你!我就按照 PyCharm 推荐的格式来吧
    @param #3 哈哈哈哈哈哈哈哈神 TM 蟹妖,这 ID 可以的
    mokeyjay
        6
    mokeyjay  
    OP
       2017-02-26 14:25:56 +08:00
    @kindjeff #2 按照 4L 文档里的格式写了,然而还是没有提示啥的……我可能用了假的 PyCharm
    kindjeff
        7
    kindjeff  
       2017-02-26 14:27:50 +08:00 via iPhone
    @mokeyjay 贴上来看看?
    iyaozhen
        8
    iyaozhen  
       2017-02-26 14:33:38 +08:00
    有,你在函数声明下一行输入 """ 然后回车就行
    就和 php 输入 /**然后回车一样
    mokeyjay
        9
    mokeyjay  
    OP
       2017-02-26 14:36:37 +08:00
    这是我写的注释


    这是调用此函数时 IDE 给出的智能提示……跟没有一样
    mokeyjay
        10
    mokeyjay  
    OP
       2017-02-26 14:37:40 +08:00
    @iyaozhen #8 嗯嗯,我也发现了。目前根据 4L 的文档在学,但是注释写了跟没写一样,没啥效果,参照 9L 。不知道是不是我写的格式有问题
    kindjeff
        11
    kindjeff  
       2017-02-26 14:48:26 +08:00
    就是这样的,只会在你写错的时候有提示~在函数的位置按 ctrl Q 才能看见 docstring
    mokeyjay
        12
    mokeyjay  
    OP
       2017-02-26 14:53:06 +08:00
    @kindjeff #11 原来如此,感谢回答。刚从 PHP 过来,比较怀念 PHPDoc 的提示
    freestyle
        13
    freestyle  
       2017-02-26 15:13:02 +08:00
    @mokeyjay #9 代码第一行改为 def get_info(li : str) -> list: 然后在调用的时候看一下 Pycharm 的提示
    gamexg
        14
    gamexg  
       2017-02-26 15:54:33 +08:00
    @freestyle +1

    这种如果调用时填错了类型, pycharm 会直接红线标出来。
    changwei
        15
    changwei  
       2017-02-26 16:47:35 +08:00 via Android
    楼主就用三个引号吧,别纠结了,大家都这样用的。 ide 有提示,__doc__也可以获取
    mokeyjay
        16
    mokeyjay  
    OP
       2017-02-26 17:14:12 +08:00
    @kindjeff #11 再请问下:我发现 import 好像并不是非要写在文件头的。那是不是当我要用到的时候再 import 这样性能会更好些呢?
    @freestyle #13
    @gamexg #14
    @changwei #15
    感谢,已按照 PyCharm 的帮助文档用上三引号了
    WangYanjie
        17
    WangYanjie  
       2017-02-26 23:48:52 +08:00
    @mokeyjay 不是,用到再 import 会带来一些潜在的问题,看看 pep8 ,能清除一些大众的点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   995 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 667ms · UTC 19:34 · PVG 03:34 · LAX 12:34 · JFK 15:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.