kmom05 if statment utan ==

  • Författare
  • Meddelande

lightsout

javascriptare

  • Inlägg: 38
  • Blev medlem: 17 aug 2017, 12:55

kmom05 if statment utan ==

Inlägg01 okt 2017, 21:25

Jag har gjort ett if statment för just silent och verbose. Det funkar om jag kan köra med

if opts["known_args"]["verbose"]: == True

Men då klagar validatorn på att jag inte jämför med.

I min kod bit så väljer den verbose alltid. vare sig -s eller inget...


Här är kod biten.
https://codeshare.io/21DMpB
Användarvisningsbild

Allinrep

dbwebb

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

Re: kmom05 if statment utan ==

Inlägg02 okt 2017, 10:34

Det här säger PEP 8 om att jämföra med booleans:
Don't compare boolean values to True or False using ==.
Kod: Markera allt
Yes:   if greeting:
No:    if greeting == True:
Worse: if greeting is True:


Jag tror att det kan vara något annat som spökar. Dubbelkolla typ och värde på variablerna innan du jämför med dem.
Kod: Markera allt
print( "verbose:", opts["known_args"]["verbose"] )
print( "verbose type:", type( opts["known_args"]["verbose"] ) )

print( "silent:", opts["known_args"]["silent"] )
print( "silent type:", type( opts["known_args"]["silent"] ) )

if opts["known_args"]["verbose"]:
    all_verbose(opts["unknown_args"])
# resten av koden

aima17

sql-kodare

  • Inlägg: 59
  • Blev medlem: 17 aug 2017, 15:36

Re: kmom05 if statment utan ==

Inlägg05 okt 2017, 23:59

Funkar denna?

if opts["known_args"]["verbose"] == True:
Användarvisningsbild

mos

dbwebb

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

Re: kmom05 if statment utan ==

Inlägg06 okt 2017, 08:06

Det är samma sak som att skriva:
Kod: Markera allt
if opts["known_args"]["verbose"]:


Kortare blir bättre i detta fallet.
...
..:
.... /mos
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: kmom05 if statment utan ==

Inlägg06 okt 2017, 08:18

Jag gissar att värdet i opts["known_args"]["verbose"] antingen är "False", en sträng, eller True, en bool, och därför har du behövt kolla ==True.
Om detta är fallet kommer inte mos's förslag att funka då "False" är en icke-tom sträng och räknas som True.
För att fixa så du kan använda mos's exempel behöver du ändra i cli_parser.py för verbose och silent.

Ta bort default="False" för båda options.

Vilka är online

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