2017-10-25 4 views
0

クラスコンストラクタをパラメータとして受け取る関数を文書化する適切な方法が何であるかを調べようとしています。私はGoogleスタイルのドキュメントストリングを使用しています。パラメータとして渡されたコンストラクタを適切に文書化してください。

例:

class MyClass: 
    def __init__(self): 
     ... 

def my_func(param1, class_constructor): 
"""Example function. 

Args: 
    param1 (int): ... 
    class_constructor (???): My class constructor. 
""" 
    class_instance = class_constructor() 
    ... 

my_func(12, MyClass) 
+1

このコンテキストでは、「クラスコンストラクタ」とは何ですか?単なるクラスじゃない? –

+0

本当にそれだけのクラス –

+1

実際には、これはおそらく呼び出し可能なものを受け入れるべきです - それは 'class'オブジェクトに制限する必要はありません(コード内の何かがそれをクラスにする必要があるが、スニペットで)。 –

答えて

0

私が正しく理解していれば、あなたは交換するものと知りたいです?あなたの例では。元の質問のコメントに指摘されているように、あなたのclass_constructor引数は実際にはクラスでなければならないので、適切な型はtype(旧式のクラスを無視する)になります。

+1

同じコードは単に呼び出し可能で、通常の関数をファクトリとして使うかクラスメソッドを代替のコンストラクタとして使うかは共通のパターンなので、 "呼び出し可能なオブジェクトを返す"と書いておきます。 –

+0

そして、タイプは(呼び出し可能)、そうでしょうか? –

+0

'__call__'メソッドを持つオブジェクトはすべて呼び出し可能です。このメソッドの存在をチェックする 'callable'というビルトインがありますが、そのようなタイプの全体的なタイプはありません(私が間違っていれば私を修正してください)。呼び出し可能なオブジェクトは、関数、クラスインスタンス、おそらく私が今考えていない他のものである可能性があります。 –

関連する問題