I come from a PHP background and would like to know if there's a way to do this in Python.
In PHP you can kill 2 birds with one stone like this:
Instead of:
if(getData()){ $data = getData(); echo $data; }
I can do this:
if($data = getData()){ echo $data; }
You check to see if getData()
exists AND if it does, you assign it to a variable in one statement.
I wanted to know if there's a way to do this in Python? So instead of doing this:
if request.GET.get('q'): q = request.GET.get('q') print q
avoid writing request.GET.get('q')
twice.
The get() method sends a GET request to the specified url.
get() method is a method used for dictionaries. What your snippet of code is doing is saying, "Get the value of a GET variable with name 'page', and if it doesn't exist, return 1". Likewise, you will see request. POST used when a user submits a form.
See my 8-year-old recipe here for just this task.
# In Python, you can't code "if x=foo():" -- assignment is a statement, thus # you can't fit it into an expression, as needed for conditions of if and # while statements, &c. No problem, if you just structure your code around # this. But sometimes you're transliterating C, or Perl, or ..., and you'd # like your transliteration to be structurally close to the original. # # No problem, again! One tiny, simple utility class makes it easy...: class DataHolder: def __init__(self, value=None): self.value = value def set(self, value): self.value = value; return value def get(self): return self.value # optional but handy, if you use this a lot, either or both of: setattr(__builtins__,'DataHolder',DataHolder) setattr(__builtins__,'data',DataHolder()) # and now, assign-and-set to your heart's content: rather than Pythonic while 1: line = file.readline() if not line: break process(line) # or better in modern Python, but quite far from C-like idioms: for line in file.xreadlines(): process(line) # you CAN have your C-like code-structure intact in transliteration: while data.set(file.readline()): process(data.get())
Probably not exactly what you were thinking, but...
q = request.GET.get('q') if q: print q
this?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With