相关疑难解决方法(0)

自我的目的是什么?

selfPython 中这个词的目的是什么?我理解它指的是从该类创建的特定对象,但我不明白为什么它明确需要作为参数添加到每个函数.为了说明,在Ruby中我可以这样做:

class myClass
    def myFunc(name)
        @name = name
    end
end
Run Code Online (Sandbox Code Playgroud)

我很容易理解.但是在Python中我需要包括self:

class myClass:
    def myFunc(self, name):
        self.name = name
Run Code Online (Sandbox Code Playgroud)

谁能跟我说说这个?这不是我在(无可否认的有限)经历中遇到的事情.

python oop class self

1061
推荐指数
17
解决办法
81万
查看次数

为什么需要在Python方法中明确地使用"self"参数?

在Python中定义类的方法时,它看起来像这样:

class MyClass(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
Run Code Online (Sandbox Code Playgroud)

但是在其他一些语言中,例如C#,您可以使用"this"关键字引用该方法绑定的对象,而不将其声明为方法原型中的参数.

这是一个有意的语言设计决策在Python或是否有一些实现细节需要传递"自我"作为参数?

python oop methods self

187
推荐指数
6
解决办法
9万
查看次数

如何在Python中避免明确的"自我"?

我通过一些pygame教程学习Python .

在那里我发现了关键字self的广泛使用,并且来自主要的Java背景,我发现我一直忘记键入self.例如,而不是self.rect.centerx我要输入rect.centerx,因为对我来说,rect已经是类的成员变量.

对于这种情况,我可以想到的Java并行是必须使用前缀对成员变量的所有引用作为前缀.

我是否坚持使用self为所有成员变量添加前缀,或者有没有办法声明它们可以让我避免这样做?

即使我建议的不是pythonic,我仍然想知道它是否可能.

我已经看过这些相关的SO问题,但他们并没有完全回答我的想法:

python self

112
推荐指数
7
解决办法
4万
查看次数

在Java中使用"this"

如果我写下面的课程:

public class Example {

      int j;
      int k;

      public Example(int j, int k) {
           j = j;
           k = k;
      }

      public static void main(String[] args) {
           Example exm = new Example(1,2);
           System.out.println(exm.j);
           System.out.println(exm.k);
      }

}
Run Code Online (Sandbox Code Playgroud)

程序编译,但是当我运行程序时,main方法将打印出两个0.我知道为了说我想在构造函数中初始化实例变量,我必须写:

this.j = j;
this.k = k;
Run Code Online (Sandbox Code Playgroud)

但是如果我不写它,那么在构造函数中(在表达式的左侧和写入侧)评估(或考虑)哪个变量?是参数还是实例变量?这有什么不同吗?

是否存在使用this强制性的其他情况?

java this variable-assignment

7
推荐指数
5
解决办法
9392
查看次数

python可以使用没有"self"作为第一个参数的类或实例方法吗?

可能重复:
为什么需要在Python方法中明确地使用"self"参数?
Python'self'解释道

这只是为了我自己的启发.我正在学习python并且已经使用python进入OOP.我见过的类中每个方法的例子都有"self"作为第一个参数.所有方法都是如此吗?如果确实如此,那么python是否已被编写,以至于这个参数只是被理解,因此不需要?谢谢.

python oop methods

4
推荐指数
1
解决办法
4340
查看次数

标签 统计

python ×4

oop ×3

self ×3

methods ×2

class ×1

java ×1

this ×1

variable-assignment ×1