Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python模块文档在参数中实例化类_Python_Python Sphinx - Fatal编程技术网

Python模块文档在参数中实例化类

Python模块文档在参数中实例化类,python,python-sphinx,Python,Python Sphinx,我有一个类,我正试图用斯芬克斯来记录它。包含以下类的模块(仅显示类的第一部分) 包含在我的sphinx文档中,代码如下: .. automodule:: structureContainer :members: :show-inheritance: 这很好用。但是中的ptclC的默认值应该是另一个类“ParticleContainer”的默认构造函数。但是在文档中,它看起来像是在文档本身中实例化了构造函数(很抱歉,我不能发布图像) class structureContainer.

我有一个类,我正试图用斯芬克斯来记录它。包含以下类的模块(仅显示类的第一部分)

包含在我的sphinx文档中,代码如下:

.. automodule:: structureContainer
   :members:
   :show-inheritance:
这很好用。但是中的ptclC的默认值应该是另一个类“ParticleContainer”的默认构造函数。但是在文档中,它看起来像是在文档本身中实例化了构造函数(很抱歉,我不能发布图像)

class structureContainer.structureContainer(ptclC=,

如何将对象实例信息排除在HTML文档之外?

因此,请详细说明并可能解决您的问题

def __init__(self, ptclC=None):
     if ptclC is None:        
         ptclC =ParticleContainer()

我之所以回答这个问题,是因为我认为Sphinx正确地显示了您正在函数定义时进行实例化。

因此,详细说明并可能解决您的问题

def __init__(self, ptclC=None):
     if ptclC is None:        
         ptclC =ParticleContainer()

我之所以回答这个问题,是因为我认为Sphinx正确地显示了您正在函数定义时进行实例化。

Fwiw,请小心将可变引用指定为默认参数值。显式传入的ptclC的所有实例都将共享同一个ptclC实例…可能是,也可能不是nt.See感谢回复JL。我会在sphinx文档构建中尝试一下。我想了解一下您的评论,以供我自己学习。我绝对不希望此容器共享同一个ptclC实例。我只是不明白为什么会出现这种情况。默认参数ParticleContainer()不是吗使用它的构造函数创建一个不同的对象?(ParticleContainer是我代码中的另一个类。默认参数值的情况是它在函数定义时被“构建”。这就是为什么Sphinx在你的文档中显示内存分配地址,顺便说一句。你在想,“哦,它每次调用都会构建一个ptclC”,但事实并非如此,只有1次。对于不可变的实例,如字符串或数字,这没关系,也没关系。通常,Python在一段代码中所做的事情是非常可预测的。这是它为数不多的边缘情况之一,如果您打算做任何严肃的Python,请阅读我在上面发布的stackoverflow链接。Much better explained.Fwiw,请小心将可变引用指定为默认参数值。所有显式传入的ptclC实例都将共享同一个ptclC实例…可能是您想要的,也可能不是您想要的。请参阅回复JL。我将在我的sphinx文档构建中尝试一下。我想更进一步地了解您的评论我绝对不希望这个容器共享同一个ptclC实例。我只是不明白为什么会是这样。默认参数ParticleContainer()不是在使用其构造函数创建另一个对象吗?(ParticleContainer是我代码中的另一个类)。默认参数值的结果是在函数定义时“构建”。这就是为什么Sphinx在你的文档中显示内存分配地址,顺便说一句。你在想,“哦,每次调用ptclC都会构建它。”",但事实并非如此,只有1次。对于不可变的实例,如字符串或数字,这没关系,也没关系。通常,Python在一段代码中所做的事情是非常可预测的。这是它为数不多的边缘情况之一,如果您打算做任何严肃的Python,请阅读我在上面发布的stackoverflow链接。Mu最好解释一下。
def __init__(self, ptclC=None):
     if ptclC is None:        
         ptclC =ParticleContainer()