2
私はPythonとC#の初心者です。私はのインターフェイスとして実装された2つのメソッドでC#でDLLを作成しようとしており、COMに登録した後にpythonファイルで呼び出します。PythonからC#で書かれた関数を呼び出すとき、 'NoneType'オブジェクトが呼び出せません
namespace Sample
{
public interface interf
{
bool printHello(string name);
void printWorld();
}
public class A : interf
{
public bool printHello(string name)
{
Console.WriteLine(name);
return true;
}
public void printWorld()
{
Console.WriteLine("World!");
}
}
}
ように私はPythonでこれらの関数を呼び出している:私はPythonのファイルを実行しようとすると、私は次のエラーを取得しています
import win32com.client
dllCall = win32com.client.Dispatch("Sample.A")
hello = dllCall.printHello("Hello")
dllCall.printWorld()
。
Hello
Traceback (most recent call last):
File "C:\Temp\sampleTest.py", line 23, in <module>
World!
dllCall.printWorld()
TypeError: 'NoneType' object is not callable
何が欠けていますか?
ニースの最初の質問!ほとんどの最初の質問はかなり悪いです... –
ちょうど勘違いですが、 "NoneType"と呼ばれるタイプの "void"を持つメソッドを呼び出すことはできません。それぞれのメソッドに実際の型を与えて、機能させる必要があるかもしれません。 –
しかし、void printWorld(string name)のような引数を追加し、dllCall.printWorld( "World")としてpythonから呼び出すと、上のコードは正常に動作します。それで私が引数なしでそれを呼び出すなら、問題は何ですか? –