2016-09-08 2 views
0

Для задания мне нужно написать программу, которая может создавать каталоги и файлы, мы должны написать класс DirectoryEntry, чтобы помочь сделать это, и для части этого мы должны создать имя для файла или каталога. Если имя введено, мы просто используем имя, но если имя не введено, мы просто используем 9 пробелов.Как установить значение по умолчанию для переменной в Python3?

Я не знаю, как это сделать, используя метод __init__, потому что Python3 не позволяет иметь более одного метода конструктора.

Прямо сейчас это выглядит как:

def __init__(self, name): 
    self.type = "f:" 
    self.name = name 
    self.length = "0000" 
    self.colon = ":" 
    self.blocks = ["000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000"]`  
+0

У вас может быть параметр по умолчанию, если он не является изменяемым объектом. Например: 'def __init __ (self, name = ''):'. Однако, есть 9 пространств разумного имени файла? – cdarke

ответ

3

Вы можете использовать:

def __init__(self, name='your_default_name'): 

После этого вы можете либо создать объект этого класса с my_object() и он будет использовать значение по умолчанию или используйте my_object('its_name') и он будет использовать входное значение.

+0

Спасибо, кучи :) –

0

Вы можете использовать аргументы по умолчанию:

def __init__(self, name='   '): 
1

Просто установите его, как это, так что для по умолчанию будет использовать 9 пространств

def __init__(self, name='  '): 
     self.type = "f:" 
     self.name = name 
     self.length = "0000" 
     self.colon = ":" 
     self.blocks = ["000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000"] 

More information

1

указать его в качестве переменной по умолчанию, как показано ниже

def __init__(self, name=' '*9): 
    self.type = "f:" 
    self.name = name 
    self.length = "0000" 
    self.colon = ":" 
    self.blocks = ["000", "000", "000", "000", "000", "000", "000","000","000","000", "000", "000"] 
+0

Они могли бы сократить 'self.blocks = [" 000 "] * 12'. – Duncan

Смежные вопросы