だから私はテレビ番組のタイトルを変更するPythonスクリプトを書いています。これは何よりも練習用です。@propertyデコレータを使用しようとしていますが、「var.property」を実行すると、varがプロパティに渡されると思っていたので、splitName()を取得しようとしています。基本クラスのhasDotsプロパティを使用できるようにしますが、Varという名前をプロパティに渡す方法がわかりません。メソッドでこれを実行できることはわかっていますが、プロパティの使用方法を学習しようとしています。基本クラスを正しく機能させることができれば、splitName()メソッドがメインメソッドになります。
これに関する助けをいただければ幸いです。また、私はPythonにかなり慣れていないので、「非Python」である何かをしている場合は、私に知らせてください。
exceptibleExts = ['.avi','.mkv','mp4']
class Base(object):
def __init__(self, source):
self.source = source
self.isTvShow()
# this method will return the file name
def fileName(self):
for name in self.source:
name, ext = os.path.splitext(name)
yield name, ext
@property
def isTvShow(self):
names = self.fileName()
for name in names:
if str(name[1]) in exceptibleExts and str(name[1]).startswith('.') == False:
return True
else:
return False
@property
def hasDots(self):
names = self.fileName()
for name in names:
if '.' in str(name[0]):
return True
else:
return False
@property
def hasDashes(self):
names = self.fileName()
for name in names:
if '-' in str(name[0]):
return True
else:
return False
@property
def startswithNumber(self):
names = self.fileName()
for name in names:
if str(name[0].lstrip()[0].isdigit()):
return True
else:
return False
@property
def hasUnderscore(self):
names = self.fileName()
for name in names:
if '_' in str(name[0]):
return True
else:
return False
class names(Base):
def __init__(self, source):
self.source = source
#pass
self.splitName()
#this method returns true if the show title is in the file name... if not it will return false
def hasShowTitle(self):
pass
def splitName(self):
#names = self.fileNames
showInfo = {}
for name in self.fileName():
print name.hasDots