For a foo.pyproj project created in VS2015~VS2022(up until today, 2022.06.05), if user sets script argument, the argument is saved in foo.pyproj itself .

foo.pyproj will be injected with XML tag:
<CommandLineArguments>param1 "param two"</CommandLineArguments>
I have to say, that is very unfriendly for a team. Team member Tom and team member Bob probably run/test the python program with different arguments, and their settings should not stomp on each other. Therefore, <CommandLineArguments> should be placed into another file called foo.pyproj.user . The team will have foo.pyproj checked into git, but not for foo.pyproj.user.
Microsoft Visual Studio projects for C++ and C# has a very long history of putting program startup parameters in foo.vcxproj.user and foo.csproj.user, and I appreciate that decision. I've been so surprised that PTVS developers have not realized this better(or best) practice yet.
Hope to see it implemented soon.