xxxxxxxxxx
# User-defined generic (union) types can be created by typing the following Python (3.10.2) commands:
from typing import TypeVar, Generic
from logging import Logger
T = TypeVar('T')
class LoggedVar(Generic[T]):
def __init__(self, value: T, name: str, logger: Logger) -> None:
self.name = name
self.logger = logger
self.value = value
def set(self, new: T) -> None:
self.log('Set ' + repr(self.value))
self.value = new
def get(self) -> T:
self.log('Get ' + repr(self.value))
return self.value
def log(self, message: str) -> None:
self.logger.info('%s: %s', self.name, message)
xxxxxxxxxx
# Union typing can be used like this:
Union[int, str]
# In function defintion it would look like this:
def func(x: Union[int, str]) -> Union[int, str]:
xxxxxxxxxx
from typing import Union
def multiply(value: Union[int, float], factor: Union[int, float]) -> Union[int, float]:
return value * factor
result = multiply(5, 2.5)
print(result) # Output: 12.5
xxxxxxxxxx
set_1 = {1, 2, 3, 4, 5}
set_2 = {3, 4, 5, 6}
# Method 1
union_1 = set_1 | set_2 # {1, 2, 3, 4, 5, 6}
# Method 2
union_2 = set_1.union(set_2) # {1, 2, 3, 4, 5, 6}
xxxxxxxxxx
set1 = {0, 2, 4, 6, 8}
set2 = {1, 3, 5, 7, 9}
result = set1.union(set2)
print(result)