我試圖撰寫一種新型的列印功能,我希望文本以程式方式列印出來,所以我寫了這個:
def print(text):
for t in text:
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
print('Monkey')
#program stamp Monkey letter by letter with delay of 0.1 sec
但是如果我把它放在里面而不是 'Monkey' ('text', object.param, 'text') 他就不能正常作業;一個例子是:
class Monkey:
def __init__(self, name):
self.name=str
Monkey.name = 'George'
def print(text):
for t in text:
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
print('Monkey', Monkey.name, 'is funny')
#TypeError: print() takes 1 positional argument but 2 were given
我如何對這個新列印進行編程以獲得與正常列印相同的潛力,但增加了延遲的可能性
感謝您的關注并為糟糕的英語感到抱歉(請不要為此對我進行 dv)
uj5u.com熱心網友回復:
改變
def print(text)
對此:
def print(*texts)
它接受多個引數不止一個。
并這樣做:
def print(*texts):
for text in texts:
for t in text:
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
編輯
如果你也想列印出 int,你可以將 int 轉換為 str:
def print(*texts):
for text in texts:
text = str(text) # Notice!! I added this line
for t in text:
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
uj5u.com熱心網友回復:
您可以在引數文本前添加一個星號。
class Monkey:
def __init__(self, name):
self.name=str
Monkey.name = 'George'
def print(*text):
for t in text:
sys.stdout.write(t)
sys.stdout.flush()
time.sleep(0.1)
print('Monkey', Monkey.name, 'is funny')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/351967.html
