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中嵌套类的范围.这是我的示例代码:
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_var的InnerClass.
有没有办法做到这一点?
我正在使用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)
为什么thisC++中的指针是指针而不是引用?
是否存在我缺少的用例,使"this"作为指针比引用更有用?
如果没有,是否有任何语言设计含义/考虑因素将其作为指针?
我试图开发一个列表(称为"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 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)