Весь этот ответ находится в контексте соответствия спецификации, а не того, что движок делает в определенный момент или исторически.
. Фактический вопрос очень расплывчатый.
будут ли свойства в том же порядке, что я добавил их
blockquote>В каком контексте?
Ответ: это зависит от ряда факторов. В общем, no .
Иногда да
Здесь вы можете рассчитывать на порядок ключей свойств для plain
Objects
:
- Соответствующий ES2015 двигатель
- Собственные свойства
Object.getOwnPropertyNames()
,Reflect.ownKeys()
,Object.getOwnPropertySymbols(O)
Во всех случаях эти методы включают неперечислимые ключи свойств и ключи заказа, указанные в
[[OwnPropertyKeys]]
(см. ниже). Они различаются по типу ключевых значений, которые они включают (String
и / илиSymbol
). В этом контекстеString
включает целые значения.
Object.getOwnPropertyNames(O)
Возвращает собственные свойства
String
O
] ).
Reflect.ownKeys(O)
Возвращает
O
собственныеString
- иSymbol
клавиши свойства.
Object.getOwnPropertySymbols(O)
Возвращает собственные свойства
Symbol
O
.
[[OwnPropertyKeys]]
Порядок по существу: целочисленный
Strings
в порядке возрастания, нецелоподобныйStrings
в порядке создания, Символы в порядке создания. В зависимости от того, какая функция вызывает это, некоторые из этих типов могут не включаться.Специфическим языком является то, что ключи возвращаются в следующем порядке:
blockquote>
- .. каждый собственный ключ свойства
P
O
[объект, который повторяется], который является целым индексом, в порядке возрастания числового индекса- ... каждый собственный ключ свойства
P
изO
который является строкой, но не является целым индексом, в порядке создания свойства- ... каждый собственный ключ свойства
P
изO
, который является символом, в порядке создания свойства
Map
Если вас интересуют упорядоченные карты, вы должны рассмотреть возможность использования типа
Map
, введенного в ES2015, вместо обычногоObjects
.
import shutil
shutil.rmtree('/folder_name')
Стандартное Справочное руководство по библиотеке: shutil.rmtree.
дизайном, rmtree
сбои на деревьях папки, содержащих файлы только для чтения. Если Вы хотите, чтобы папка была удалена независимо от того, содержит ли она файлы только для чтения, то используйте
shutil.rmtree('/folder_name', ignore_errors=True)
От документы Python на os.walk()
:
# Delete everything reachable from the directory named in 'top',
# assuming there are no symbolic links.
# CAUTION: This is dangerous! For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))