*args
не называются магическими переменными, но списки произвольных аргументов или variadic arguments
, и они используются для отправки произвольного числа аргументов в функцию, и они заключены в кортеж как пример ниже
In [9]: def f(a,*args):
...: print(a)
...: print(args)
...:
In [10]: f(1,2,3,4)
1
(2, 3, 4)
Таким образом, чтобы получить доступ к этим переменным, вы должны делать то же, что и для любой переменной экземпляра класса, назначать ее через self.args = args
и обращаться к ним через self.args
Также обратите внимание, что мы используем camel-case
для имен классов, поэтому имя класса меняется на MyClass
и snake-case
для функций, поэтому имя функции меняется на my_func
class MyClass:
def __init__(self, name, *args):
self.name = name
#Assigning variadic arguments using self
self.args = args
def my_func(self):
#Accessing variadic arguments using self
for i in self.args:
print(i)
obj = MyClass('Joe',1,2,3)
obj.my_func()
Вывод будет
1
2
3