python - 在类方法中声明新变量

标签 python class class-method

我刚刚阅读了 Python 中的类和方法变量,我想知道这两个示例之间是否存在差异:

class Example(object):
    def __init__(self, nr1, nr2):
        self.a = nr1
        self.b = nr2

    def Add(self):
        c = self.a + self.b
        return c

class Example2(object):
    def __init__(self, nr1, nr2):
        self.a = nr1
        self.b = nr2

    def Add(self):
        self.c = self.a + self.b
        return self.c

基本上如果我这样做:

print Example(3,4).Add()
print Example2(3,4).Add()

我得到了相同的结果:

7
7

所以我的问题是:

  1. self.c = self.a + self.bc = self.a + self.b 有什么区别?
  2. 是否应使用 self 语句声明在类中声明的所有新变量?

感谢您的帮助!

最佳答案

不同之处在于,在第二个示例中,您将加法的结果存储到对象变量 c 中。在第一个示例中,c 在方法内部,因此不能是类变量,因为它是在调用 Add 方法时实例化的,而不是在定义类时实例化的。

方法中的变量应该写成self,如果你想存储它们的话。一个局部的、不重要的变量可以写在一个方法中,就像你在 c 的例子中所做的那样。

关于python - 在类方法中声明新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558532/

相关文章:

ruby - 如何知道调用了哪个模块用户

ruby-on-rails - 从包含验证访问类方法

objective-c - 在两个 nib 之间传递参数 : suggestion?

python - 可以获取带有大写字母的键盘输入的Pygame程序

java - 从java应用程序下载文件

python - 实时动态绘图

c# - 什么是 C# 中的 .class (在 Java 中使用)的等价物

python-3.x - 无法调用部分方法定义的函数

python - 在 Mac OS X 10.6.8 上使用 Homebrew 安装 Python 2.7 后使用 pip 时出现问题

python - 函数定义、类型错误