Разве возврат не может 'аннулировать' от общих методов?

Если причина, которую Вы проверяете, так, можно сделать что-то как if file_exists: open_it(), более безопасно использовать try вокруг попытки открыть его. Проверка и затем открытие рискуют файлом, удаляемым или перемещенным или что-то между тем, когда Вы проверяете и когда Вы пытаетесь открыть его.

, Если Вы не планируете открыть файл сразу, можно использовать os.path.isfile

Возврат True, если путь является существующим регулярным файлом. Это переходит по символьным ссылкам, таким образом, оба образовывание остров () и isfile () может быть верным для того же пути.

import os.path
os.path.isfile(fname) 

, если необходимо быть уверены, что это - файл.

Запуск с Python 3.4, pathlib модуль предложения объектно-ориентированный подход (бэкпортированный к [1 110] в Python 2.7):

from pathlib import Path

my_file = Path("/path/to/file")
if my_file.is_file():
    # file exists

Для проверки каталога сделайте:

if my_file.is_dir():
    # directory exists

, Чтобы проверить, существует ли Path объект независимо от того, является ли им файл или каталог, используйте exists():

if my_file.exists():
    # path exists

можно также использовать resolve(strict=True) в try блок:

try:
    my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
    # doesn't exist
else:
    # exists

6
задан Servy 21 November 2013 в 17:50
поделиться

1 ответ

T не может быть нулевым, потому что T может быть тип значения. Попробуйте вернуть значение по умолчанию (T) или добавить ограничение класса, чтобы указать, что T может быть только ссылочным типом, например:

public T GetLevelElement<T>(string name) where T : ILevelElement, class
{
    [...]
}
25
ответ дан 8 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: