我希望能够分辨出第一次调用方法的时间.当我打印到分隔文件时,我主要需要这个,如果是第一次迭代,我想在实际信息之前打印一个标题.这就是我通常做的事情:
def writeFile(number, count):
if count == 1:
print('number')
print(str(count))
else:
print(str(count))
count = 1
for i in range(10):
writeFile(i, count)
count += 1
Run Code Online (Sandbox Code Playgroud)
这提供了以下输出:
number
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
虽然这实现了我追求的目标,但我很好奇是否有更好/更有效的方法来做到这一点.有没有办法检测方法是否第一次被调用而不必向其传递额外的参数?
谢谢,
有多种方法可以做到这一点。这是三个。
第一:
firstRun=True
def writeFile(number):
global firstRun
if firstRun:
print('number')
firstRun=False
print(str(number))
for i in range(10):
writeFile(i)
Run Code Online (Sandbox Code Playgroud)
第二:
def writeFile(number):
print(str(number))
for i in range(10):
if not i:
print('number')
writeFile(i)
Run Code Online (Sandbox Code Playgroud)
第三:
for i in range(10):
print(('' if i else 'number\n')+str(i))
Run Code Online (Sandbox Code Playgroud)
我假设这只是一个测试问题,旨在表明函数调用初始化或重置数据的情况。我更喜欢那些对调用函数隐藏信息的对象(例如1)。我是Python的新手,所以我可能使用了不良做法。
在调用函数之前,可以将标题写入文件.这将否定你对if语句的需要.我是一名基础程序员,但这对我来说似乎合乎逻辑.例如:
def writeFile(count):
print(str(count))
print('number')
for i in range(10):
writeFile(i)
Run Code Online (Sandbox Code Playgroud)