小编thi*_*ias的帖子

如何在执行时打印Python文件的docstring?

我有一个带有docstring的Python脚本.当解析命令行参数不成功时,我想打印文档字符串以获取用户的信息.

有没有办法做到这一点?

最小的例子

#!/usr/bin/env python
"""
Usage: script.py

This describes the script.
"""

import sys


if len(sys.argv) < 2:
    print("<here comes the docstring>")
Run Code Online (Sandbox Code Playgroud)

python docstring

69
推荐指数
3
解决办法
3万
查看次数

git:列出一天(或周/月......)添加/修改的所有文件

给定一段时间(例如一天,一周,一个月),是否可以列出此时修改或添加的所有文件?

git git-log

43
推荐指数
6
解决办法
2万
查看次数

git只推送存储库的一部分

我开发了一些脚本来处理我的bibtex数据库和PDF.

为方便起见,我在同一个git存储库中管理数据库和脚本(这是我不想改变的事情).但是,我想让我的脚本可用(例如在github上),而不是我的数据库或pdf.不过,我希望在github和本地脚本上都有相同的commit-history.

我想过有一个github-branch并且只推动这个分支.但是,如何通过对主分支中的脚本执行提交来更新分支?

有没有其他方法可以做到这一点?

git github

12
推荐指数
2
解决办法
5001
查看次数

具有默认参数的Python类构造函数

可能重复:
Python中的"最小惊讶":可变默认参数

谁能解释以下奇怪的行为?

我有以下课程:

class Zoo:
    def __init__(self,alist=[]):
        self.animals = alist

    def __len__(self):
        return len(self.animals)

    def add(self,a):
        self.animals.append(a)
Run Code Online (Sandbox Code Playgroud)

当我做以下事情时,

In [38]: z=Zoo()
In [39]: z.add(2)
In [40]: z.add(23)
In [41]: len(z)
Out[41]: 2

In [42]: z2=Zoo()

In [43]: len(z2)
Out[43]: 2
Run Code Online (Sandbox Code Playgroud)

为什么z2.animals不是空列表?

谢谢,马蒂亚斯

python oop

10
推荐指数
2
解决办法
1万
查看次数

swig 和 python3:多余的下划线

使用swig 2.0.8和python 3.2,运行

swig -python -modern -py3 -o mymodule_wrap.c mymodule.i
Run Code Online (Sandbox Code Playgroud)

生成一个包装文件,其中包含

#  define SWIG_init    PyInit__mymodule
Run Code Online (Sandbox Code Playgroud)

在那里(注意 PyInit 和 mymodule 之间的两个下划线)。

导入失败并显示

python3 -c "import mymodule"
Traceback (most recent call last):
   File "<string>", line 1, in <module>
ImportError: dynamic module does not define init function (PyInit_mymodule)
Run Code Online (Sandbox Code Playgroud)

(注意单下划线)。

手动删除下划线mymodule_wrap.c并重新编译工作模块中的结果。

在这个问题中:SWIG and Python3 Import Error python 解释器抱怨找不到PyInit__module.

怎么了?

python swig

5
推荐指数
1
解决办法
2943
查看次数

python超级调用子方法

关于使用的问题有很多,super()但它们似乎都没有回答我的问题.

当调用super().__init__()在一个子类,在超级构造所有方法调用实际上是取自子类.考虑以下类结构:

class A(object):
    def __init__(self):
        print("initializing A")
        self.a()
    def a(self):
        print("A.a()")

class B(A):
    def __init__(self):
        super().__init__()
        # add stuff for B
        self.bnum=3 # required by B.a()        
    def a(self):
        print("B.a(), bnum=%i"%self.bnum)

b=B()
Run Code Online (Sandbox Code Playgroud)

失败了

initializing A
Traceback (most recent call last):
  File "classmagic.py", line 17, in 
    b=B()
  File "classmagic.py", line 11, in __init__
    super().__init__()
  File "classmagic.py", line 5, in __init__
    self.a()
  File "classmagic.py", line 15, in a
    print("B.a(), bnum=%i"%self.bnum)
AttributeError: 'B' object has no attribute …
Run Code Online (Sandbox Code Playgroud)

python oop superclass

5
推荐指数
1
解决办法
6538
查看次数

告诉git cvsimport后两个用户是等价的

做完之后

git cvsimport
Run Code Online (Sandbox Code Playgroud)

我以前的提交列出属于用户"user"(用户是我的unix用户名).

我怎么能告诉git这些提交是我的(即,定义从"user"到我的"First Lastname <first@last.com>"git-user的映射?

git

4
推荐指数
1
解决办法
387
查看次数

标签 统计

python ×4

git ×3

oop ×2

docstring ×1

git-log ×1

github ×1

superclass ×1

swig ×1