Вложенное понимание Python: возможно ли вернуть атрибут функции?Python

Программы на Python
Ответить
Anonymous
 Вложенное понимание Python: возможно ли вернуть атрибут функции?

Сообщение Anonymous »

В основном псевдокод: return function(item) if function(item) != item[index]
(Я использую Flask с сеансом)
С этой функцией выше,
обновленной (ускоренная переработка по предложению Тима Робертса):

Код: Выделить всё

db = SQL("sqlite:///images.db")

def chkAdmin(adm):
print("debug chkAdmin", adm)
if adm[0] is None:
return redirect(url_for("login"))
username= getUsername(adm[0])
path = adm[1]
oldpath = path
if db.execute("SELECT username FROM users WHERE id = ?", 1):
if username == "admin":
if path == "/profile":
path = "/admin_p"
if path == "/register":
print("adminPage")
path = "/admin"

print(f"debug: Admin on 1 OK! ({oldpath} {path}) \n adm: {adm}, {username}, {path}")
return path

crateTabls()
return "/admin"
Начиная с первого решения:

Код: Выделить всё

@app.route("/profile", methods=["GET", "POST"])
@login_required
def profile():
user_id = session["user_id"]
# - - - - -
adm = [user_id, "/profile"] # session check
chk = chkAdmin(adm)
if chk != adm[1]:
return redirect(chk) # no main session
#...
найдено второе решение

Код: Выделить всё

    # - - - - -
adm = [user_id, "/profile"] # here adm[1]
if chkAdmin(adm) != adm[1]:  # (1) here chkAdmin(adm)
return redirect(chkAdmin(adm))
Есть третье решение для лучшего понимания?
(1)Могу ли я написать что-то, что не нужно вводить функцию chkAdmin(adm) два раза?

Подробнее здесь: https://stackoverflow.com/questions/798 ... f-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»