我编写了一个类,其中有一个函数通过*args
接受多个输入,但是运行结果证明它只接受第二个参数,就像self
接受第一个参数一样,下面是一个简化的代码:
class incorrect():
def itera(self, *args):
for i in args:
print(i)
a = incorrect
a.itera(12, 23, 34)
并且输出,12
丢失:
23
34
到底是什么问题?我该怎么解决这个问题?
您正在调用类本身的方法,而不是类的实例。创建一个实例,然后对其调用方法:
a = incorrect() # Add () to create instance
a.itera(12, 23, 34)
在类本身上调用它时,它充当静态方法,并且不再隐式传递self
,因为没有self
要传递。
这是因为您在类上使用它,所以Self
是12
,而args
是[33,34]
。您可以通过创建一个实例来修复它:
a = incorrect()
a.itera(12, 23, 34)
或者您可以在签名中省略self
,并使用decorator@staticmethod
:
@staticmethod
def itera(*args):
for i in args:
print(i)
或者您可以将其设置为classmethod
:
@classmethod
def itera(cls, *args):
for i in args:
print(i)
我已经回顾了其他几个类似的问题,但我读到的那些问题并没有帮助解决我的问题。我的目标是基于int用户输入打印菜单值,并继续提供选择,直到用户点击6退出。这是我的代码(我是Java新手)。
问题内容: 我正在尝试遍历数组并将每个元素插入表中。据我所知,我的语法是正确的,我直接从Microsoft Azure的文档中获取 了此代码。 当我运行时,它到达然后失败。这是堆栈跟踪。 追溯(最近一次通话最近):在cursor.execute中,文件“ test.py”,第29行(“ INSERT INTO test(序列)值(%s)”,(“ test”))文件“ C:\ Users \ Ale
问题内容: 我正在Python中进行多处理实验,并试图在两个进程之间共享一个字符串数组。这是我的python代码: 运行脚本时,我看到该脚本已正确填充,并且可在中找到,但不能在中找到。结果如下: 我忽略了什么吗? 预先感谢您的反馈。:) 问题答案: 我的猜测是: 存储3个指针。将它们分配给当前进程之外没有意义的内存地址。尝试访问此时包含垃圾邮件的无意义地址。 分配对所有过程都有意义的值似乎有帮助:
我只是想知道我是不是做错了什么,因为我对这一切都是陌生的<如果您还有什么需要我补充的,请告诉我 这是回购分支,如果您想查看所有代码,我将尝试在其中实现ViewPager。 所以我有4个用表示的类别,每个类别都包含一个的项目,每个项目都有一个,应该会再现一些音频。 我正在尝试使用ViewPager显示,但问题是当我从滚动到另一个,然后回到已经创建的时,它不会注册触摸事件,什么都不会发生,甚至没有错误
我有一个GET请求电话,如下所示 参数类型错误 下面是请求类: 我不确定我为什么会得到这个。以下是我的IDE的建议。 成为原始类型 有一个接受单个String参数的构造函数 有一个名为valueOf或fromString的静态方法,它接受一个String参数(例如,请参见Integer.valueOf(String)) 具有ParamConverterProvider JAX-RS扩展SPI的注册
问题内容: 任何人都可以澄清一下下面的过程是否是正确的处理流程流的方法,而没有任何流缓冲区已满和阻塞问题 我正在从Java程序中调用外部程序,正在使用ProcessBuilder来构建流程,执行之后 我正在使用一种方法来处理流程 在我的方法中,我试图处理流程流 readStream方法用于读取我的流文本。 问题答案: 不,那不是正确的方法。 首先,在某些系统上,您的代码将永远停留在调用中,因为该过