如何将某些内容添加到属性?

时间:2019-10-19 02:08:45

标签: python python-3.x oop

如何对类进行修改或添加?

例如,在以下代码中,lol可以修改我在a中使用的__init__是什么意思?可能吗如果是这样,我该怎么办?

class Bla:
    def __init__(self, a):
        self.a = a

    def lol(self):

2 个答案:

答案 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)