Får ett fel i valideringen för kmom3 lab3

  • Författare
  • Meddelande

jald17

nykomling

  • Inlägg: 1
  • Blev medlem: 10 sep 2017, 19:01

Får ett fel i valideringen för kmom3 lab3

Inlägg23 sep 2017, 20:54

Så här ser det ut:
Kod: Markera allt
pylint failed: './me/kmom03/lab3/answer.py'
************* Module answer
C: 53, 0: Missing function docstring (missing-docstring)
C: 78, 0: Missing function docstring (missing-docstring)
C: 99, 0: Missing function docstring (missing-docstring)
C:122, 0: Missing function docstring (missing-docstring)
C:146, 0: Missing function docstring (missing-docstring)
C:172, 0: Missing function docstring (missing-docstring)
W:206, 8: Redefining name 'x' from outer scope (line 125) (redefined-outer-name)
C:204, 0: Missing function docstring (missing-docstring)
W:233, 8: Redefining name 'x' from outer scope (line 125) (redefined-outer-name)
C:231, 0: Missing function docstring (missing-docstring)
W:269, 4: Redefining name 'y' from outer scope (line 149) (redefined-outer-name)
W:268, 4: Redefining name 'x' from outer scope (line 125) (redefined-outer-name)
C:267, 0: Missing function docstring (missing-docstring)
C:299, 0: Missing function docstring (missing-docstring)

Ser ju ut som en jätte massa fel, men det kom bara upp ett. Kan själv inte förstå vad som är fel. Behöver jag göra om allt eller är det lätt att fixa? och i så fall hur fixar man det?
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Får ett fel i valideringen för kmom3 lab3

Inlägg24 sep 2017, 11:47

Pylint är ett verktyg som körs genom dbwebb validate och som kontrollerar att din kod följer vår kodstandard, mestadels i enlighet med standarden PEP8. Kod kan fungera alldeles utmärkt även om det inte följer den standarden, men inom en organisation så är det lättare att läsa andras kod och lösa problem eller bygga vidare om alla skriver sin kod likadant.

Felmeddelanden från pylint går utmärkt att söka efter på internet. En sökning på missing-docstring leder mig till pylint-messages.wikidot.com som förklarar tydligare vad det innebär.
Documentation Strings (called "docstrings") help you understand the intention of a module, function, class or method.

The chances that you will remember what each part of your code does is slim. Using docstrings will save you time and troubleshooting. Even the most descriptive function name (i.e. create_effective_rate_history()) will need a guide to its parameters.

Docstrings are helpful when using autodoc options in programs like Sphinx, so you, as the programmer, only have to describe a thing once.

The definitive guide to docstrings is PEP 257. There is a good guide to documenting Python signatures at the Sphinx Domains page.

Läser du vidare på PEP 257 så får du väldigt mycket information om vad docstrings är och varför de är bra, och även exempel på hur de kan se ut. En enkel one-line docstring duger i labben.
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Får ett fel i valideringen för kmom3 lab3

Inlägg24 sep 2017, 11:50

Meddelandet redefined-outer-name är svårare att hitta en förklaring för. Jag hittade den officiella förklaringen genom att fråga pylint direkt.
Kod: Markera allt
$ dbwebb login
$ pylint --help-msg=redefined-outer-name

:redefined-outer-name (W0621): *Redefining name %r from outer scope (line %s)*
  Used when a variable's name hide a name defined in the outer scope. This
  message belongs to the variables checker.

För att förstå det meddelandet behöver man förstå vad outer scope innebär. Kortfattat handlar felmeddelandet om att det kan uppstå svårhittade buggar i koden om man använder samma variabelnamn för variabler som ska användas till olika saker.

Troligtvis har du funktioner som använder samma variabler som finns utanför funktionerna. Lösningen är att byta namn på variablerna i funktionerna, eller parametrarna som det kallas.
Online
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11083
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Får ett fel i valideringen för kmom3 lab3

Inlägg25 sep 2017, 08:41

redefined-outer-name

Som Allinrep säger, du har troligen samma namn på en variabel i det globala scopet (utanför funktionerna) som du har på en parameter till en funktion eller en variabel inuti en funktion.

Byt namn på variablerna så att du undviker namngivningskrock mellan variabler i det golbala scopet och funktionens scope.
...
..:
.... /mos

Cizzz

webbsurfare

  • Inlägg: 5
  • Blev medlem: 09 sep 2017, 11:23

Re: Får ett fel i valideringen för kmom3 lab3

Inlägg27 sep 2017, 21:04

Jag har samma problem.. men när jag lägger in variebeln i funktionen får jag istället felmeddelande

Undefined variable

så det är ju inte heller bra.

kh31d4r

regexp-master

  • Inlägg: 135
  • Blev medlem: 23 maj 2012, 15:39

Re: Får ett fel i valideringen för kmom3 lab3

Inlägg27 sep 2017, 21:35

Om variabeln används i båda scopen så går det inte att flytta in den till det inre scopet, eftersom den då inte syns i det yttre (man kan titta ut ur funktioner, men inte in).

För att undvika att namnen krockar kan man antingen byta namn på någon av variablerna, eller flytta funktionen till en annan fil (i de fall där det är logiskt).

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 9 gäster