namespace readingvaraibles
{
public class Class1
{
public Class2 Class2 {get;set}
public Class3 Class3 {get;set;
}
}
var class1 = new Class1();
var class2 = new class1.Class2();
var variable1 = class2.variable_1;
var variable2 = class2.variable_2;
var class3 = new class1.Class3();
var variable3 = class3.variable3;
и т.д ...
Это может быть сложно для проверки на полномочия в Windows (остерегайтесь проблем в Vista с контролем учётных записей, например! - посмотрите этот связанный вопрос).
Вы говорите о простом доступе для чтения, т.е. читаете содержание каталога? Самый верный способ протестировать полномочия состоял бы в том, чтобы попытаться получить доступ к каталогу (например, сделать os.listdir
) и поймайте исключение.
Кроме того, для путей, которые будут интерпретироваться правильно, необходимо использовать необработанные строки или выйти из обратных косых черт (' \\'), - или использовать наклонные черты вправо вместо этого.
(РЕДАКТИРОВАНИЕ: можно избежать наклонных черт в целом при помощи os.path.join
- рекомендуемый способ создать пути)
В то время как os.access старается изо всех сил говорить, доступен ли путь или нет, он не утверждает, что был прекрасен. Из документов Python:
Примечание: Операции ввода-вывода могут перестать работать, даже когда доступ () указывает, что они успешно выполнились бы, особенно для операций в сетевых файловых системах, которые могут иметь семантику полномочий вне обычной модели бита полномочий POSIX.
Рекомендуемый способ узнать, есть ли у пользователя доступ, чтобы сделать независимо от того, что состоит в том, чтобы попытаться сделать это и поймать любые исключения, которые происходят.
На самом деле 'C: \ haveaccess' отличается от r'C: \ haveaccess '. С точки зрения Python' C: \ haveaccess 'не является допустимым путем, поэтому используйте вместо него' C: \\ haveaccess '. Я думаю, что os.access работает нормально.