import?re
在蓮花等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,蓮花網(wǎng)站建設(shè)費(fèi)用合理。
import?sys
def?function_name(f):
t?=?f.read()
names?=?re.findall(r"def?(.+?)\(",?t)
return?names
def?main():
names?=?None
if?len(sys.argv)??1:
with?open(sys.argv[1])?as?f:
names?=?function_name(f)
else:
names?=?function_name(sys.stdin)
print(names)
main()
用正則表達(dá)式就很方便了
這段代碼可以從命令行接收一個(gè)文件名, 也可以從stdin直接讀.
python代碼傳進(jìn)去, function名字在一個(gè)列表里傳出來
順帶提一下, 你的題目說的是這個(gè)function接收一個(gè)TextIOWrapper, 所以你不應(yīng)該再open
Python里類的成員函數(shù)至少有一個(gè)參數(shù),且第一個(gè)參數(shù)一定是self。
而且所有成員變量也必須用self.xxx的形式調(diào)用。
簡(jiǎn)單的修改如下:
class?Openfile:
filepath?=?''
def?chooseit(self,?filepath):
self.filepath?=?filepath
opent?=?open(filepath,'r')
line?=?opent.readline()
print?line
opent.close()
f?=?Openfile()
f.chooseit("E:\\a.txt")
def和__init__之間要空格
你__init__代碼下面的函數(shù)定義都用對(duì)了,照著下面的格式就行。
符號(hào)錯(cuò)誤。
Python def class if elif for while 等語句末尾沒有加上“: ”關(guān)鍵符號(hào),檢查對(duì)應(yīng) def class if elif for while語句結(jié)尾是否少了關(guān)鍵符號(hào)“ : ”。
正確代碼:
class?Num(object):
# 這 def 語句結(jié)尾添加缺少的 :
def?__init__(self, num):
self.num?=?num
def?__abs__(self):
# 縮進(jìn)不正確
return?abs(self.num)?num?=?Num(-10)
print(abs(num))
擴(kuò)展資料:
忘記在 if , elif , else , for , while , class ,def 聲明末尾添加 “:”(導(dǎo)致 “SyntaxError :invalid syntax”)
1、該錯(cuò)誤將發(fā)生在類似如下代碼中:12if spam== 42 print('Hello!')
使用 = 而不是 ==(導(dǎo)致“SyntaxError: invalid syntax”)
= 是賦值操作符而 == 是等于比較操作。
2、該錯(cuò)誤發(fā)生在如下代碼中:if spam= 42: print('Hello!')
錯(cuò)誤的使用縮進(jìn)量(導(dǎo)致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)
你的語法有錯(cuò)誤。內(nèi)置函數(shù)power(x, y[, z])中的x和y是必選參數(shù),z是可選參數(shù);如果使用了參數(shù)z,中括號(hào)必須去掉,即power(x,y,z),其結(jié)果是x的y次方再對(duì)z求余數(shù),但是這種方式比power(x,y) % z的執(zhí)行效率要高。你可以使用power(2, 4)或者power(2,4,3)。 power(2,4)=2的4次方=16; power(2,4,3)=2的4次方再模上3=16 % 3=1。
python函數(shù)內(nèi)b=b+1報(bào)錯(cuò)是因?qū)戝e(cuò)代碼。在Python中,所有代碼都是通過正確的空格排列的。無多出來空格或缺少空格,整個(gè)代碼都不會(huì)運(yùn)行,僅返回一個(gè)錯(cuò)誤函數(shù)。Python代碼遵循PEP8空白規(guī)范,每一級(jí)縮進(jìn)使用4個(gè)空格,便不會(huì)報(bào)錯(cuò)。