Аргумента функция получила два.
Первый - self (сам объект), второй - ваш (-v)
Должно быть нечто вроде
class Engine:
version = "v1.0.0"
def pi(self, cmd):
if cmd == "-v":
print(f"TScript version: {Engine.version}")
elif cmd == "-u":
print(f"Update TScript in this time is impossible!")
elif cmd == "help":
print(f"""
# <this is function description>
TScript.pi("-v") <Check TScript version>
TScript.pi("-u") <Update TScript>
TScript.pi("help") <Check args list on "pi" method on "TScript">
""")
else:
print("Invalid Arg")
Когда вы вызываете метод,
TScript = Engine()
TScript.pi("-v")
можно сказать, что питон его выполняет как
Engine.pi(TScript, '-v')
Первый аргумент методов класса - ссылка на объект