如何在 Class 的构造函数中处理魔法变量
How to handle magic variables in a constructor of a Class
我的 class 中需要一个 magic variable
并开始编写它
class myclass:
def __init__(self, name, *args):
self.name = name
????
def myFunc()
for i in args:
print(i)
我只是找不到关于如何在构造函数中编写带有魔法变量的 class 并在以后使用它的正确解释。我是否必须从中创建一个 self.
成员(如果是的话如何创建)或者我可以忽略它并像在 myFunc
中那样使用 args 吗?
如果您将 args
分配给 self.args
,您可以通过其他方法访问它们。但是,此方法必须接受 class 的实例作为其第一个参数(请参阅下文 myFunc
现在如何采用 self
)。
class myclass:
def __init__(self, name, *args):
self.name = name
self.args = args
def myFunc(self):
for i in self.args:
print(i)
*args
不叫魔术变量,而是arbitrary argument lists,或variadic arguments
,它们用来向函数发送任意数量的参数,它们被包裹在一个元组如下例
In [9]: def f(a,*args):
...: print(a)
...: print(args)
...:
In [10]: f(1,2,3,4)
1
(2, 3, 4)
因此,为了访问这些变量,您可以对任何 class 实例变量执行相同的操作,通过 self.args = args
分配它并通过 self.args
[=22= 访问它们]
另请注意,我们使用 camel-case
作为 class 名称,因此 class 名称更改为 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
我的 class 中需要一个 magic variable
并开始编写它
class myclass:
def __init__(self, name, *args):
self.name = name
????
def myFunc()
for i in args:
print(i)
我只是找不到关于如何在构造函数中编写带有魔法变量的 class 并在以后使用它的正确解释。我是否必须从中创建一个 self.
成员(如果是的话如何创建)或者我可以忽略它并像在 myFunc
中那样使用 args 吗?
如果您将 args
分配给 self.args
,您可以通过其他方法访问它们。但是,此方法必须接受 class 的实例作为其第一个参数(请参阅下文 myFunc
现在如何采用 self
)。
class myclass:
def __init__(self, name, *args):
self.name = name
self.args = args
def myFunc(self):
for i in self.args:
print(i)
*args
不叫魔术变量,而是arbitrary argument lists,或variadic arguments
,它们用来向函数发送任意数量的参数,它们被包裹在一个元组如下例
In [9]: def f(a,*args):
...: print(a)
...: print(args)
...:
In [10]: f(1,2,3,4)
1
(2, 3, 4)
因此,为了访问这些变量,您可以对任何 class 实例变量执行相同的操作,通过 self.args = args
分配它并通过 self.args
[=22= 访问它们]
另请注意,我们使用 camel-case
作为 class 名称,因此 class 名称更改为 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