Вложенное понимание 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

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