import xml.etree.ElementTree as ET
data = """
<ns2:Request xmlns:ns2="urn://www.example.com">
<ns2:User>
<ns2:Name>John</ns2:Name>
<ns2:Surname>Snow</ns2:Surname>
<ns2:Email>joihn.show@gmail.com</ns2:Email>
<ns2:Birthday>2005-10-23T04:00:00+03:00</ns2:Birthday>
</ns2:User>
</ns2:Request>
"""
namespaces = {"ns2": "urn://www.example.com"}
xml = ET.fromstring(data)
name = xml.find(".//ns2:Name", namespaces).text
surname = xml.find(".//ns2:Surname", namespaces).text
email = xml.find(".//ns2:Email", namespaces).text
birthday = xml.find(".//ns2:Birthday", namespaces).text
print("Name:", name)
print("Surname:", surname)
print("Email:", email)
print("Birthday:", birthday)
В связи с этим приходится самостоятельно вырабатывать подходы для разработки на немФреймворк может быть и новым, но никто не запрещает посмотреть примеры на том же джанго или фласке, т.к. в большинстве случаев разница между подходами не такая большая.
$mail->From = "Ваш реальный email в Яндекс для подключенного домена";
class Person(BaseModel):
age: conint(ge=30)
class Config:
validate_assignment = True
validate_all = True
class FormModel(BaseModel):
first: Optional[bool] = False
second: Optional[bool] = False
third: Optional[bool] = False
something_there: str = "qwexdfg"
class Config:
validate_assignment = True
@validator("first", "second", "third")
def set_bool(cls, val):
return False if val is None else val
@validator("something_there")
def set_str(cls, val):
return "x" in val
class ListNode:
def __init__(self, val, next=None):
self.val = val
self.next = next
def __str__(self):
tail = self.next and f', {self.next}' or ''
return f'{self.val!r}{tail}'
def __next__(self):
if self.next:
return self.next
raise StopIteration
def __iter__(self):
item = self
while item:
yield item.val
item = item.next
def copy(self):
return ListNode(self.val, self.next and self.next.copy())
__repr__ = __str__
ln=ListNode; l=ln(1, ln(1, ln(2, ln(3, ln(3)))))
Я понимаю, как tail меняется и зачем это нужно, но как head становится без дублей - не понимаю.
tail.next = current.next
@dataclass
class Person:
first_name: str
last_name: str
bdate: date
@classmethod
def make(cls, first_name: str, last_name: str, bdate: str) -> 'Person':
_bdate = datetime.strptime(bdate, '%Y%m%d').date()
return cls(first_name=first_name, last_name=last_name, bdate=_bdate)
data = {
'first_name': 'Adam',
'last_name': 'Smith',
'bdate': '20220617'
}
person = Person.make(**data)
from datetime import date, datetime
from pydantic import BaseModel, validator
class Person(BaseModel):
first_name: str
last_name: str
bdate: date
@validator('bdate', pre=True)
def bdate_from_string(cls, v):
if isinstance(v, str):
return datetime.strptime(v, '%Y%m%d').date()
return v
data = {
'first_name': 'Adam',
'last_name': 'Smith',
'bdate': '20220617'
}
person = Person(**data)
print(person)
git checkout F1^ # переместить HEAD на C3
git commit –m "C10" # добавить коммит
git rebase --onto HEAD master F3 # пересадить сюда кусок ветки F3
git cherry-pick F1 # скопировать коммит С4 с вершины ветки F1
0b1 # Читать
0b10 # Писать
0b100 # Редактировать
0b1000 # Удалять
0b1010 # юзер может писать и удалять, но не может читать и редактировать
0 = 0000 0000
1 = 0000 0001
2 = 0000 0010
3 = 0000 0011
4 = 0000 0100
5 = 0000 0101
6 = 0000 0110
7 = 0000 0111
8 = 0000 1000
9 = 0000 1001
3 = 0000 0011
означает 20 + 21 = 1 + 2 = 3.1 - бит 0 - notify
2 - бит 1 - friends
4 - бит 2 - photos
8 - бит 3 - audio
12 = 0000 0000 0000 1100