2
我是Python和C#的新手。我試圖在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調用這些函數爲:
import win32com.client
dllCall = win32com.client.Dispatch("Sample.A")
hello = dllCall.printHello("Hello")
dllCall.printWorld()
我收到以下錯誤,當我嘗試執行Python文件。
Hello
Traceback (most recent call last):
File "C:\Temp\sampleTest.py", line 23, in <module>
World!
dllCall.printWorld()
TypeError: 'NoneType' object is not callable
什麼是我失蹤?
好的第一個問題!大多數第一個問題都很糟糕...... –
這只是一個預感,但我認爲你不能調用類型爲「void」的方法,因爲它被稱爲「NoneType」。你可能需要給每種方法一個真正的類型,以使其工作。 –
但是,如果我添加一個像void printWorld(字符串名稱)的參數,並將其從python調用爲dllCall.printWorld(「World」),則上面的代碼可以正常工作。那麼,如果我沒有爭論地稱呼它,那麼問題是什麼? –