key = "letters1keydog963"
totp = pyotp.TOTP(key)
base64.b32encode
.
Parameters
Secret
REQUIRED: The secret parameter is an arbitrary key value encoded in Base32 according to RFC 3548. The padding specified in RFC 3548 section 2.2 is not required and should be omitted.
SELECT rownum FROM (SELECT row_number() over(ORDER BY rate DESC) rownum, id FROM users) q WHERE id = ?
__and__
эмулирует побитовую конъюнкцию (побитовый AND), которая в питоне делается так:a & b
m.start()
.re.finditer()
:[m.start() for m in re.finditer("\d", s1)]
idxs = []
l = 0
while m := re.search("\d", s1):
idxs.append(l + m.start())
l += m.end()
s1 = s1[m.end():]
[i for i, c in enumerate(s1) if c >= '0' and c <= '9']
class A:
def __init__(self, value):
print("A::__init__")
self.value = value
class B:
def __init__(self, name):
print("B::__init__")
self.name = name
class C(A, B):
def __init__(self, name, value):
super().__init__(value)
super(A, self).__init__(name)
print(C.__mro__)
t = C('Name', 0)
super(Class, obj).method()
ищется метод родительского класса, правее Class по цепочке mro:(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)
super()
- в данном случае равносильно super(C, self)
- поиск начнется с A if json.load(jsonconfig)['DEBUG']:
dire = json.load(jsonconfig)
data = json.load(jsonconfig)
if data['DEBUG']:
dire = data['directory']
# здесь указал пароль от учетной записи ubuntu с одноименным именем username
\password
(?, ?, ?, ?, ?, ?, ?, ?, ?)
на (%s, %s, %s, %s, %s, %s, %s, %s, %s)
Конструкция with кажется предполагает закрытие соединения с БД
Cursors can be used as context managers: leaving the context will close the cursor.
class A:
def __init__(self, a = []):
self.a = a
class B(A):
pass
o1 = A()
o2 = B()
o1.a.append(17)
print(o1.a)
# [17]
print(o2.a)
# [17]
self.a
для всех экземпляров, созданных без передачи параметра в конструктор, ведут на один и тот же объект список.