相关疑难解决方法(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中嵌套类的范围.这是我的示例代码:

class OuterClass:
    outer_var = 1
    class InnerClass:
        inner_var = outer_var
Run Code Online (Sandbox Code Playgroud)

类的创建没有完成,我收到错误:

<type 'exceptions.NameError'>: name 'outer_var' is not defined
Run Code Online (Sandbox Code Playgroud)

尝试inner_var = Outerclass.outer_var不起作用.我明白了:

<type 'exceptions.NameError'>: name 'OuterClass' is not defined
Run Code Online (Sandbox Code Playgroud)

我试图访问静态outer_varInnerClass.

有没有办法做到这一点?

python scope nested class inner-classes

113
推荐指数
3
解决办法
14万
查看次数

Function()只需要2个参数(给定3个)

我正在使用python来调用一个类中的方法,该类位于另一个其他类文件中的方法的一个文件中

假设我的文件abc.py包含

class data : 

         def values_to_insert(a,b):
               ......
                ......
Run Code Online (Sandbox Code Playgroud)

另一个文件是 def.py

import abc
class values:
      data=abc.data()
      def sendvalues():
          a=2
          b=3
          data.values(a,b)
Run Code Online (Sandbox Code Playgroud)

当我运行此文件时,它会出错: values() takes exactly 2 arguments (3 given)

python

16
推荐指数
1
解决办法
6万
查看次数

为什么C++中的"this"指针是指针而不是引用?

为什么thisC++中的指针是指针而不是引用?

是否存在我缺少的用例,使"this"作为指针比引用更有用?

如果没有,是否有任何语言设计含义/考虑因素将其作为指针?

c++ reference

10
推荐指数
1
解决办法
626
查看次数

Cant Solve"inc()需要1个位置参数但是2个被给出"

我试图开发一个列表(称为"l")的两个自然数(不包括0)的元组列表,如"a"可以是"l"的成员,如果len(a)== len和每个成员(让我们调用p)"a",p [0] <= max和p [1] <= max

例如poslist_all(max = 2,len = 1)

[[(1,1)],[(1,2)],[(2,1)],[(2,2)]]
Run Code Online (Sandbox Code Playgroud)

和poslist_all(2,2)

[[(1,1),(1,1)],[(1,1),(1,2)],[(1,1),(2,1)],[(1,1),(2,2)],...,[(2,2),(1,1)],[(2,2),(1,2)],[(2,2),(2,1)],[(2,2),(2,2)]]
Run Code Online (Sandbox Code Playgroud)

所以我试图使该列表成为一个迭代器并提出这个代码,

class poslist_all:
    def __init__(self,max,len):
        self.max = max
        self.len = len
        self.iposlist = len*[(1,1)]
    def __iter__(self):
        return self
    def __next__(self):
        ml = self.maxlist()
        if ml:
            if ml[0] == 0:
                raise StopIteration
            else:
                toinc = ml[0]-1
                self.inc(ml[0] - 1)
                for i in range(ml[0],self.len-1):
                    self.iposlist[i] = (1,1)
                return self.iposlist
        else:
            self.inc(self.len - 1)
            return self.iposlist
    def maxlist(self):
        return [x for x,y in enumerate(self.iposlist) if y == …
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
1
解决办法
3930
查看次数

0位置争论,但一个给出,但为什么

在python 3.3上使用Ipython

class Gear:
    def __init__(self,chainring,cog):
        self.chainring = chainring
        self.cog  = cog
    def ratio () :
        ratio = self.chainring/self.cog
        return ratio


mygear = Gear(52,11)
mygear.ratio()
Run Code Online (Sandbox Code Playgroud)

错误

TypeError: ratio() takes 0 positional arguments but 1 was given
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×5

class ×2

c++ ×1

inner-classes ×1

nested ×1

oop ×1

reference ×1

scope ×1

self ×1