Вы не авторизованы и не можете видеть весь контент сайта. Хотите авторизоваться?
Данный сайт использует куки. Это позволяет нам анализировать взаимодействие посетителей с сайтом и делать его лучше. Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie.
Вы можете установить этой сайт в виде иконки на рабочем столе
и использовать его как нативное приложение.
Хотите установить это веб-приложение?
Python для начинающих 015
<% normalizedTimer %>
Дан код
```python
class A:
def __init__(self):
self.x = 1
def __getattr__(self, v):
return v*10
def __setattr__(self, k, v):
self.__dict__[k] = v
a = A()
print(a.x, a.y)
```
Что он выведет?
Вопрос № 1(Верно)(Неверно)
Ответы:
AttributeError
1 1
1 y
1 yyyyyyyyyy
Что выведет код:
```python
class B:
def __init__(self):
self.x = 1
b = B()
print(b.x, b.y)
```
Вопрос № 2(Верно)(Неверно)
Ответы:
AttributeError
1 None
1 1
1 AttributeError
Что выведет код:
```python
class M:
def __init__(self):
self.x = 1
def __enter__(self):
return self
def __exit__(self, exc_ty, exc_val, tb):
return True
with M() as m:
print(m.x, 1/0)
```
Вопрос № 3(Верно)(Неверно)
Ответы:
Ничего
None
ZeroDivisionError
1
Дан код
```python
class A:
def __setattr__(self, k, v):
...
```
Как его дописать, чтобы изменить атрибут.
Вопрос № 4(Верно)(Неверно)
Ответы:
setattr(self, k, v)
self.__dict__[k] = v
object.__setattr__(self, k, v)
self.k = v
Дан код
```python
class A:
def __init__(self):
self.x = 1
def __delattr__(self, attr):
...
```
Как его дописать, чтобы удалить атрибут.
Вопрос № 5(Верно)(Неверно)
Ответы:
del self.__dict__[attr]
del self.x
object.__delattr__(self, attr)
delattr(self, attr)
Какая проблема возникнет в результате работы кода?
```python
class A:
__slots__ = ['x', 'y']
def __init__(self, x, y):
self.x = x
self.y = y
self.z = 1
a = A(2, 3)
```
Определение списка __slots__ = ['x', 'y'] приводит к тому, что только указанные в нем атрибуты можно устанавливать. Поэтому self.z = 1 генерирует исключение AttributeError.
Вопрос № 6(Верно)(Неверно)
Ответы:
Проблем не будет
SlotError
InstanceError
AttributeError
IndexError
<pre>В чем отличие методов __getattribute__ от __getattr__ в классах? </pre>
Вопрос № 7(Верно)(Неверно)
Ответы:
<pre>Отличий нет</pre>
<pre> __getattr__ перехватывает операции извлечения всех атрибутов,
не только тех, которые не определены(в отличии от __getattribute__ )</pre>
<pre>__getattribute__ перехватывает операции извлечения всех атрибутов,
не только тех, которые не определены(в отличии от __getattr__)</pre>
<pre>Один из этих методов является устаревшим названием другого</pre>
Какая встроенная функция позволяет ассоциировать методы с операциями
извлечения и установки для специфического атрибута класса?
Вопрос № 8(Верно)(Неверно)
Ответы:
attribute
method
callable
property
Дан код:
```python
class A:
def __init__(self):
self.__x = 1
a = A()
```
Как вывести значение атрибута __x ?
Вопрос № 9(Верно)(Неверно)
Ответы:
<pre>print(a.x)</pre>
<pre>print(a._A__x)</pre>
<pre>print(a.__x)</pre>
<pre>print(a._x)</pre>
Что выведет код?
```python
class PrivateExc(Exception): pass
class Privacy:
def __setattr__ (self, attrname, value):
if attrname in self.privates:
raise PrivateExc(attrname, self)
else:
self.__dict__[attrname] = value
class Test(Privacy):
privates = ['age']
x = Test()
x.age = 40
print(x.age)
```