2016-12-27 19 views
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 

何が欠けていますか?

+0

ニースの最初の質問!ほとんどの最初の質問はかなり悪いです... –

+0

ちょうど勘違いですが、 "NoneType"と呼ばれるタイプの "void"を持つメソッドを呼び出すことはできません。それぞれのメソッドに実際の型を与えて、機能させる必要があるかもしれません。 –

+0

しかし、void printWorld(string name)のような引数を追加し、dllCall.printWorld( "World")としてpythonから呼び出すと、上のコードは正常に動作します。それで私が引数なしでそれを呼び出すなら、問題は何ですか? –

答えて

1

最後に私はそれを働かせました。 printWorldに角かっこなしの電話番号()をご連絡ください。

dllCall.printWorld 
関連する問題