Files
nuitka-mirror/tests/basics/VarargsTest.py
2025-04-28 11:04:36 +02:00

72 lines
2.1 KiB
Python

# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
"""Test functions with variable args"""
def plain_list_dict_args_function(plain, *arg_list, **arg_dict):
print("plain", plain, "arg_list", arg_list, "arg_dict", arg_dict)
def plain_list_args_function(plain, *arg_list):
print(plain, arg_list)
def plain_dict_args_function(plain, **arg_dict):
print(plain, arg_dict)
print("Function with plain arg and varargs dict:")
plain_dict_args_function(1, a=2, b=3, c=4)
plain_dict_args_function(1)
print("Function with plain arg and varargs list:")
plain_list_args_function(1, 2, 3, 4)
plain_list_args_function(1)
print("Function with plain arg, varargs list and varargs dict:")
plain_list_dict_args_function(1, 2, z=3)
plain_list_dict_args_function(1, 2, 3)
plain_list_dict_args_function(1, a=2, b=3, c=4)
def list_dict_args_function(*arg_list, **arg_dict):
print(arg_list, arg_dict)
def list_args_function(*arg_list):
print(arg_list)
def dict_args_function(**arg_dict):
print(arg_dict)
print("Function with plain arg and varargs dict:")
dict_args_function(a=2, b=3, c=4)
dict_args_function()
print("Function with plain arg and varargs list:")
list_args_function(2, 3, 4)
list_args_function()
print("Function with plain arg, varargs list and varargs dict:")
list_dict_args_function(2, z=3)
list_dict_args_function(2, 3)
list_dict_args_function(a=2, b=3, c=4)
# Python tests originally created or extracted from other peoples work. The
# parts were too small to be protected.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.