たとえば、次のような「文字列メソッド」:
teststring = "[Syllabus]Sociology.131.AC.Race.and.Ethnicity.in.the.United.States (Spring 2012).docx"
print teststring.replace('.', ' ')
「[シラバス]社会学 131 米国における AC 人種と民族性 (2012 年春) docx」
素晴らしいですし、私が書いているスクリプトにはたくさんのテキスト操作が含まれています。それは私がやっていることの多くであり、機能を追加するにつれて、それは引き続き重要です.
私が行っている一般的な操作の1つは次のとおりです。
teststring = "[Syllabus]Sociology.131.AC.Race.and.Ethnicity.in.the.United.States (Spring 2012).docx"
def f_type(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[1]
def f_name(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[2]
def f_term(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[3]
def f_ext(f): return f.split('/')[-1] if os.path.isdir(f) else re.split(r'(\[Syllabus\]|\[Syllabus \d+\]|\[Video\]|)(.*?)( \(Fall \d+\)| \(Spring \d+\)| \(Summer \d+\)|)(\.part\d+\.rar$|\.\w+$)', f.split('/')[-1])[4]
print f_type(teststring)
print f_name(teststring)
print f_term(teststring)
print f_ext(teststring)
[シラバス] 社会学.131.AC.Race.and.Ethnicity.in.United.States (2012 年春) .docx
しかし、「.ftype()」、「.fname()」、「.fterm()」、および「.fext()」メソッド (私が持っているこれらの関数に対応する) を追加できるようにしたいと考えています。そして、私はそれを行う方法がわかりません。
スクリプト内のさまざまな関数で使用することを検討しています(したがって、クラスにバインドされることはありません)。
何をググるべきかさえ理解できません。しかし、どうすればこれらのメソッドを追加できますか?
PS メソッドの名前はそれほど重要ではありません。したがって、これらの名前を変更して、組み込みメソッドなどと競合しないようにする必要がある場合は、問題ありません。
編集:私は、このメソッドを次のようなものに使用できるようにしたいと考えています:
def testfunction(f1, f2): print 'y' if f1.ftype()==f2.ftype() else 'n'
したがって、1 つの文字列などにバインドするのではなく、さまざまな文字列に使用できるようにしたいと考えています。