如何对类进行修改或添加?
例如,在以下代码中,lol
可以修改我在a
中使用的__init__
是什么意思?可能吗如果是这样,我该怎么办?
class Bla:
def __init__(self, a):
self.a = a
def lol(self):
答案 0 :(得分:1)
我不确定Bla.lol()如何修改提供给它的参数 a
,但它会改变属性 {从对象内部引用的{1}}或Bla.a
,最初为对象分配了参数self.a
的值。
我们可以让函数a
为属性lol
分配一个新值,在这种情况下,我将假设a
是一个字符串,并使用词组a
:
' has been altered'
答案 1 :(得分:0)
您已经成功添加/修改了类实例。即,__init__
接受一些a
并将其作为属性.a
添加到实例self
。为变量和属性使用相同的名称是偶然的-您也可以使用不同的名称:
class Bla:
def __init__(self, b):
self.a = b # add `b` as attribute `a`
将属性添加到实例后,默认情况下可以自由读取和覆盖此属性。这适用于初始方法,其他方法以及有权访问该实例的任何其他函数/方法。
class Bla:
def __init__(self, b):
self.a = b # add `b` as attribute `a`
def lol(self, c):
self.a = c # add `c` as attribute `a` (discarding previous values)
def rofl(self, d):
self.a += d # re-assign `self.a + d` as attribute `a`
# external function modifying `Bla` instance
def jk(bla, e):
bla.a = e # add `e` as attribute `a` (discarding previous values)