All streams
Search
Write a publication
Pull to refresh
1
0.3
Send message
numbers = MyRange(1, 5)
iterator = iter(numbers)  # Получаем итератор
print(next(iterator))  # Выведет: 1
print(next(iterator))  # Выведет: 2
print(next(iterator))  # Выведет: 3
print(next(iterator))  # Выведет: 4
print(next(iterator))  # Выведет: StopIteration исключение

iterator = iter(numbers)  # Пытаемся получить новый итератор
print(next(iterator))  # Надеемся, что он выдаст 1, но получаем StopIteration исключение
# WTF?! Нам подсунули использованный итератор!!

Очередное сравнение красного с круглым

С какой целью вам определять класс в type_animal, если подкласс Cat или Dog уже его определяет? Для чего вам нужно это дублирование?

Или:

cat = Cat(name="Барсик")

Или:

cat = Animal(name="Барсик", type_animal=TypeAnimal.CAT)

Но зачем мешать эти два примера в одном?

Тогда надо писать:

cat = Cat(name="Барсик", type_animal=TypeAnimal.REPTILIA)

Sound это свойство класса, а не экземпляра, на что и указывает ClassVar. А вместе с Protocol они требуют, чтобы это поле было определено в одном из потомков.

А почему вы упорно делаете type_animal свойством экземпляра, а не класса? Для того, чтобы можно было что-то подобное написать:

cat = Cat(name="Барсик", type_animal=TypeAnimal.AMPHIBIA)

???

Можно написать так:

from abc import ABC, abstractmethod

class Animal(ABC):
    @property
    @abstractmethod
    def sound(self) -> str:
        ...

class Cat(Animal):
    @property
    def sound(self) -> str:
        return "Meow"

class Dog(Animal):
    pass

Cat()
Dog()  # error: Cannot instantiate abstract class "Dog" with abstract attribute "sound"  [abstract]

или так:

from typing import Protocol, ClassVar

class Animal(Protocol):
    sound: ClassVar[str]

class Cat(Animal):
    sound = "Meow"

class Dog(Animal):
    pass

Cat()
Dog()  # error: Cannot instantiate abstract class "Dog" with abstract attribute "sound"  [abstract]

Может быть пример

class Kw(TypedDict):
    key1: int
    key2: bool


def foo(*args: Unpack[tuple[int, str]], **kwargs: Unpack[Kw]) -> None:
    ...

и показывает как можно аннотировать функцию, но он точно не отвечает на вопрос, а зачем так писать, когда можно записать проще:

def foo(arg1: int, arg2: str, /, kwarg1: int, kwarg2: bool):
    ...

Не обязательно. Выше вы все правильно написали, синхронизация нужна только для хэндоверов. Причем в случае FDD достаточно частотной синхронизации, то для TDD требуется еще и фазовая.

А если базовая станция всего одна, то она должна нормально работать и на внутреннем тактовом генераторе.

в условии задачи было, что все числа положительные

Если вопрос звучит как "напишите функцию", а не "реализуйте алгоритм", то будет ли считаться читерством вариант просто использовать функцию bisect.bisect_right() из стандартной питоновской библиотеки?

В любом случае был кто-то, кто сказал: а давайте сделаем так, чтобы поезд "сломался" как только он приедет к конкурентам в мастерскую...

А судят не за намерения, а за реализацию. Повесить на дверь огромный замок -- это защита собственного имущества, а вот поставить мину-ловушку, чтобы вору руки-ноги поотрывало -- это уже уголовное преступление, хотя намерения одинаковые.

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

Следующий вопрос для размышления: а обязательно ли создавать рабочие места в центрах крупных городов?

Во многих спальных районах большого города рабочих мест тоже не очень много, но тем не менее они не вымирают...

Именно из немецкого языка пришло такое замечательное слово как "брандмауэр".

Ну я пытался ее вытянуть как на видео, но, видимо, сделал это неаккуратно...

А она там разве не приклеена супер-клеем? Я на 3gs менял сам, там действительно минут 15 занимало, а вот на 5s я где-то пол часа потратил на то, чтобы отодрать батарею от корпуса.

Information

Rating
2,443-rd
Registered
Activity