Ive получил вполне комфортно в прошлом году кодирование в python, но я остался в стороне от Classes (как в структурировании моего кода в них), потому что я их не понял.Docopt и классы
Теперь я пытаюсь понять, что мне нужно изменить в своих методах кодирования, чтобы использовать преимущества Класса во всей их славе.
Я пытался использовать сценарий примера, который я написал, и передал его на версию класса. Безопасно сказать, что я сосать плохо и не могу заставить мой простой скрипт работать. Я уверен, что есть мириады этого Im, которые, скорее всего, делают неправильно. Я бы очень признателен, что кто-то указал на меня.
Я не очки ума палец и живот смеется тоже^_^
Coder После (не работает)
"""
Description:
This script is used to walk a directory and print out each filename and directory including the full path.
Author: Name
Usage:
DirLister.py (-d <directory>)
DirLister.py -h | --help
DirLister.py --version
Options:
-d <directory> The top level directory you want to list files and directories from.
-h --help Show this screen.
--version Show version.
"""
import os
from docopt import docopt
class walking:
def __init__(self, directory):
self.directory = arguments['-d']
def walk(self, directory):
for root, dirs, files in os.walk(self.directory):
for filename in files:
print os.path.join(root, filename)
if __name__ == '__main__':
arguments = docopt(__doc__, version= '1.0.0')
print arguments
if arguments['-d'] is None:
print __doc__
exit(0)
else:
walking.walk(directory)
Оригинал неклассовых код на основе (рабочий)
"""
Description:
This script is used to walk a directory and print out each filename and directory including the full path.
Author: Name
Usage:
DirLister.py (-d <directory>)
DirLister.py -h | --help
DirLister.py --version
Options:
-d <directory> The top level directory you want to list files and directories from.
-h --help Show this screen.
--version Show version.
"""
import os
from docopt import docopt
arguments = docopt(__doc__, version= '1.0.0')
def walk(dir):
for root, dirs, files in os.walk(dir):
for filename in files:
print os.path.join(root, filename)
if __name__ == '__main__':
if arguments['-d'] is None:
print __doc__
exit(0)
else:
walk(arguments['-d'])
Спасибо @Francis Colas, это имеет смысл и, конечно же, теперь работает. Я собираюсь сделать еще несколько сценариев с нуля в стиле класса и посмотреть, смогу ли я с этим справиться. И я рассмотрю соглашение об именах. – iNoob