GCloud: создание шаблона экземпляра с контейнером докеров и графическим процессором

Здесь есть две вещи:

1. class attributes and instance attributes
2. difference between the operators + and += for lists

+ оператор вызывает метод __add__ в списке. Он берет все элементы из своих операндов и создает новый список, содержащий эти элементы, поддерживающие их порядок.

+= оператор вызывает метод __iadd__ в списке. Он требует итерации и добавляет все элементы итерабельности в список на месте. Он не создает новый объект списка.

В классе foo оператор self.bar += [x] не является оператором присваивания, но фактически переводит на

self.bar.__iadd__([x])  # modifies the class attribute  

, который изменяет список на месте и действует как метод списка extend.

В классе foo2, наоборот, оператор присваивания в методе init

self.bar = self.bar + [x]  

может быть деконструирован как: экземпляр не имеет атрибута bar (есть атрибут класса с тем же именем), поэтому он обращается к атрибуту class bar и создает новый список, добавляя к нему x. Оператор преобразуется в:

self.bar = self.bar.__add__([x]) # bar on the lhs is the class attribute 

Затем он создает атрибут экземпляра bar и присваивает ему вновь созданный список. Обратите внимание, что bar на rhs присваивания отличается от bar на lhs.

Для экземпляров класса foo, bar является атрибутом класса, а не атрибутом экземпляра. Следовательно, любое изменение атрибута class bar будет отражено для всех экземпляров.

Напротив, каждый экземпляр класса foo2 имеет свой собственный атрибут экземпляра bar, который отличается от атрибута класса с тем же именем bar.

f = foo2(4)
print f.bar # accessing the instance attribute. prints [4]  
print f.__class__.bar # accessing the class attribute. prints []  

Надеюсь, это очистит.

2
задан ordepedro 13 July 2018 в 17:18
поделиться

1 ответ

Можно создать экземпляр с ускорителями и контейнер с gcloud, создав экземпляр с помощью ускорителей, а затем используя gcloud beta compute instances update-container, чтобы установить контейнер, но в настоящее время невозможно создать шаблон экземпляра с ускорителями и контейнер с gcloud.

Вы можете запросить функцию для этой функции: https://issuetracker.google.com/issues/new?component = 187143 & амп; шаблон = 0

0
ответ дан Harrison Gregg 17 August 2018 в 12:21
поделиться
Другие вопросы по тегам:

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