It is not completely clear what you want.
You have func2 and func3 are absolutely identical. That is, one and the other get the variable x from the parent function and some other variable as its own argument, and then returns a pair from x and its argument.
The fact that in one case you have an argument called y, and in the other case, z, does not change anything, because it is a purely internal function name. Externally, func2 and func3 will work ABSOLUTELY the same.
Well, and you have a confusion with the arguments. When you declare a function, you can actually write any valid name with the argument, and not worry about where the argument comes from.
But when you call the function func1 (x), you must first ensure that you already have the variable x.
It seems that you do not really understand what functions are and how they work - I advise you to look into this topic.
Now about your question.
If I did understand your original intention correctly, and you need to have a container with two functions, then this can be done through classes.
class Func1(object): def func2(self, param): print('Сработала функция func2 c параметром ' + param) def func3(self, param): print('Сработала функция func3 с параметром ' + param) y = func2 z = func3 new = Func1() new.y('3') # напечатает: Сработала функция func2 c параметром 3 new.z('3') # напечатает: Сработала функция func3 c параметром 3
return func3will never be executed. - Sergey Gornostaev