在类外访问方法时出错

2024-04-25 11:54:24 发布

您现在位置:Python中文网/ 问答频道 /正文

class one(object):
    b=squares

def squares(self):
    print('hi')

获取以下错误:

NameError: name 'squares' is not defined


Tags: nameselfobjectisdef错误nothi
1条回答
网友
1楼 · 发布于 2024-04-25 11:54:24

这应该对你有用。让我解释一下。首先代码应该进入方法内部,这些方法可以组合成类。不应该直接在类中放置代码。你知道吗

在Python中,实例化对象时直接调用__init__(self)方法。此方法采用self参数,该参数将保存此类可用的属性和函数。在本例中,我添加了一个名为self.size = 5的属性。然后我们调用squares(self)函数。注意,我们以self.function_name()的形式访问它。你知道吗

然后在该函数中传递self参数。注意我们如何从这个函数访问self.size属性。你知道吗

class one(object):
    def __init__(self):
        self.size = 5
        b = self.squares()

    def squares(self): 
        print('hi' + str(self.size))

o = one()

如果希望泛型函数不绑定到对象。然后你需要在类之前定义它。你知道吗

def squares(a): 
    return a*a 

class One(): 
    def __init__(self, a): 
        self.num = a 
        self.example()

    def example(self): 
        b=squares(self.num) 
        print(b) 

obj = One(4)

相关问题 更多 >