mprzemo mprzemo 28.09.2018, 10:48:01 1 + Cześć mam taki kod z jakiegoś tutoriala:def log(originalfunction, logfilename="log.txt"): def newfunction(*args, **kwargs): with open(logfilename, "w") as logfile: logfile.write("Function '%s' called with positional arguments %s and keyword arguments %s.\n" % ( originalfunction.name, args, kwargs)) return originalfunction(*args, **kwargs) return newfunction@log("newlog.txt")def myfunction(message): print(message)Czy ktoś wie jak podać parametry aby nie wyrzucało błędu: AttributeError: 'str' object has no attribute '_name_'?#python
mprzemo mprzemo 28.09.2018, 10:53:37 0 + @joolekk: myfunction = log(myfunction, "newlog.txt") to działa, pytanie jak to zapisać w składni z @log
c8241070679095affe257f6c6f695c34 c8241070679095affe257f6c6f695c34 28.09.2018, 11:32:35 0 + zeby skladnia z @log dzialala to dekorator pisze sie inaczej, dodajac tak jakby jeden wrapper wiecej, wrzucam na pastebina, zeby formatowania nie zepsuc:https://pastebin.com/AskHpGWR
mprzemo mprzemo 28.09.2018, 13:02:31 0 + @c8241070679095affe257f6c6f695c34: super dzięki za odpowiedź, żeby działało tak jak trzeba należy w funkcji wrapper dopisać func(*args, **kwargs).
def log(originalfunction, logfilename="log.txt"):
def newfunction(*args, **kwargs):
with open(logfilename, "w") as logfile:
logfile.write("Function '%s' called with positional arguments %s and keyword arguments %s.\n" % (
originalfunction.name, args, kwargs))
return originalfunction(*args, **kwargs)
return newfunction
@log("newlog.txt")
def myfunction(message):
print(message)
Czy ktoś wie jak podać parametry aby nie wyrzucało błędu: AttributeError: 'str' object has no attribute '_name_'?
#python
https://pastebin.com/AskHpGWR