Используйте не зависящие от регистров регулярные выражения вместо шаблонов glob. fnmatch.translate
генерирует регулярное выражение из шаблона glob, поэтому
re.compile(fnmatch.translate(pattern), re.IGNORECASE)
дает вам нечувствительную к регистру версию шаблона glob в качестве скомпилированного RE.
Имейте в виду, что если файловая система размещается в ящике Linux в Unix-подобной файловой системе, пользователи смогут создавать файлы foo
, Foo
и FOO
в том же каталоге.
Как я могу перегрузить оператор Node вне структуры Node, но внутри MyStruct?
blockquote>Вы не можете этого сделать. Любые операторы перегрузки, определенные вне
Node
и внутриMyStruct
, рассматриваются как оператор перегрузки изMyStruct
. Это гдеnamespace
отличается отstruct
.Вы можете использовать:
struct MyStruct { struct Node { int a; }; }; MyStruct::Node operator+(MyStruct::Node const& A, MyStruct::Node const& B) { MyStruct::Node ret; ret.a = A.a + B.a; return ret; }