- Notifications
You must be signed in to change notification settings - Fork749
Open
Labels
Description
Environment
- Pythonnet version: 3.0.3
- Python version: 3.11
- Operating System: Windows 10
- .NET Runtime: .NET 8.0
Details
When accessing a .NET function using PythonNET, if a kwarg is incorrect or doesn’t exist, it is discarded by the PythonNET execution engine
If I have a .NET function like this:
PublicFunctionSomeFunction(nameasString,ageasString)asStringReturn $"{name} - {age}"EndFunction
And I call it in PythonNET like this:
if__name__=="__main__":name="John"age="3"SomeFunction(name,age=age,fake_arg="something")
The fake arg is discarded, and no error or exception is thrown. Python compiles as if the additional kwarg were not there. In this situation, normal Python would be throwing a TypeError.
This is an issue with a multiple kwargs in the methods/functions is that a user can easily misspell and result in unexpected behavior.