这个简单的循环工作得很好:
>>> def loop (i):
i+=i
if 0<i<20:
print i
loop(i)
>>> loop (1)
2
4
8
16
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它意外退出循环:
>>> from functools import partial
>>> def loop (i):
i+=i
if 0<i<20:
print i
partial(loop,i)
>>> loop(1)
2
>>>
Run Code Online (Sandbox Code Playgroud)
有什么问题?有没有办法让它以某种方式工作?
这只是一个简单的功能......我真正的问题是:
问:如何编写一个能够循环自身的函数,每次只使用多个参数?我应该看看其他地方(除了部分)吗?
我无法运行我的任何项目,因为单击run或debug按钮(或按各自的快捷键)将引发以下 NPE 并要求我将其报告给 google。
这个错误发生在 Android Studio 内部,而不是我的代码中;不需要示例代码来重现,因为它可能发生在任何项目中。
java.lang.NullPointerException
at com.intellij.openapi.vfs.impl.local.LocalFileSystemBase.findFileByIoFile(LocalFileSystemBase.java:79)
at com.intellij.openapi.vfs.VfsUtil.findFileByIoFile(VfsUtil.java:232)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.getLibManifests(ManifestInfo.java:406)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.refresh(ManifestInfo.java:339)
at com.android.tools.idea.model.MergedManifest.syncWithReadPermission(MergedManifest.java:377)
at com.android.tools.idea.model.MergedManifest$2.run(MergedManifest.java:356)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:843)
at com.android.tools.idea.model.MergedManifest.sync(MergedManifest.java:353)
at com.android.tools.idea.model.MergedManifest.getActivities(MergedManifest.java:510)
at com.android.tools.idea.run.activity.DefaultActivityLocator.lambda$computeDefaultActivity$0(DefaultActivityLocator.java:79)
at com.intellij.openapi.project.DumbService$1.run(DumbService.java:89)
at com.intellij.openapi.project.DumbService$2.compute(DumbService.java:125)
at com.intellij.openapi.project.DumbService$2.compute(DumbService.java:119)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:859)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:119)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:86)
at com.android.tools.idea.run.activity.DefaultActivityLocator.computeDefaultActivity(DefaultActivityLocator.java:78)
at com.android.tools.idea.run.activity.DefaultActivityLocator.validate(DefaultActivityLocator.java:65)
at com.android.tools.idea.run.editor.DefaultActivityLaunch$State.checkConfiguration(DefaultActivityLaunch.java:49)
at com.android.tools.idea.run.AndroidRunConfiguration.checkConfiguration(AndroidRunConfiguration.java:108)
at com.android.tools.idea.run.AndroidRunConfigurationBase.validate(AndroidRunConfigurationBase.java:175)
at com.android.tools.idea.run.AndroidRunConfigurationBase.checkConfiguration(AndroidRunConfigurationBase.java:113)
at com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl.checkSettings(RunnerAndConfigurationSettingsImpl.java:423)
at com.intellij.execution.impl.RunManagerImpl.canRunConfiguration(RunManagerImpl.java:535)
at com.intellij.execution.impl.RunManagerImpl.canRunConfiguration(RunManagerImpl.java:530)
at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:71)
at com.intellij.execution.impl.ExecutionManagerImpl.start(ExecutionManagerImpl.java:117)
at com.intellij.execution.impl.ExecutionManagerImpl.access$300(ExecutionManagerImpl.java:67)
at com.intellij.execution.impl.ExecutionManagerImpl$3.run(ExecutionManagerImpl.java:509)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:222)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:378)
at com.intellij.openapi.application.TransactionGuardImpl$6.run(TransactionGuardImpl.java:291)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:326)
at …Run Code Online (Sandbox Code Playgroud)