great presentation, really pythonic and useful! Just one remark, it might be better to use the the format string or even better, the new literal string instead of the old-style string :)
@420_gunna2 жыл бұрын
I think this is just a misspeak, but at 9:21 she says a class is an iterator because it implements __iter__. That actually makes it an ITERABLE. An iterable who, when you call __iter__ via iter(MY_ITERABLE), you receive back an object (called an iterator) which, in this case, is the _same_ object. To be an iterator, you have to support next() via a __next__ method! So as far as I understand it, this class is both an iterable AND an iterator. But it's an iterable because it implements __iter__, and an iterator because it implements __next__. Can anyone confirm this?
@ahh-sure Жыл бұрын
Yes, but it's not a great example, very bug-prone design. Unless you're intentionally trying to share iteration state across calls to iter(), generally want your iterator to be an object with its own state. E.g. I'd expect this to make a Cartesian product [(x, y) for x in A for y in A] But if the iterator produced by "for x in A" has the same state as the one produced by "for y in A", you'll only get one value for x before the iterator is exhausted (by y), and y will never get the value that x used up.
@rickylim49105 жыл бұрын
I really like your talk. Thank you!
@plato4ek3 жыл бұрын
there are no slider at the github link, and no slides at speakerdeck either
@borisurkan22236 жыл бұрын
Great presentation. Which font is used for code?
@ManuelBTC216 жыл бұрын
Found the slide deck. www.slideshare.net/nnja/elegant-solutions-for-everyday-python-problems-nina-zakharenko The pdf has embedded "WorkSans" and "Inconsolata". Edit: Unfortunately it seems that this is an older version of the presentation and neither of these are the one used here.
@borisurkan22236 жыл бұрын
Manuel Barkhau I already have. Monospaced font is not Inconsolata.
@ManuelBTC216 жыл бұрын
Boris Đurkan well, what is it then?
@borisurkan22236 жыл бұрын
Manuel Barkhau I don’t know. Most similar is IBM Plex Mono.
@borisurkan22236 жыл бұрын
Thanks!
@michaelthomheadley5 жыл бұрын
Excellent talk!
@qu4ku6 жыл бұрын
That was a dmn cool presentation.
@DJCronixx5 жыл бұрын
Absolutely Amazing!!!!!
@drd1055 жыл бұрын
This is really rushed. It's a good overview of some of the unique language features, but I had troubles following it even though I knew all the features. One thing that I did notice is that you yield without a try/finally inside of contextmanager. Not sure if this idiom has changed, but I am used to always see and write it as try: #do some setup yield finally: #teardown This way if the code using the contextmanager raises an exception, it will still get its exception, but the resource will be released. This makes sense because the exception will actually be caught outside of the `with` block.
@gJonii4 жыл бұрын
I'm not great coder but I saw similar problems with many of her examples. Which is a real shame since I really hoped to get some good practices type code examples out of this, but with incomplete examples I'm now really hesitant to actually use any of this stuff :/
@RoushanSingh074926 жыл бұрын
Nice with great reference !!
@谷天赐6 жыл бұрын
very useful, thank you.
@mitoliang89504 жыл бұрын
great! great!
@not_a_human_being6 жыл бұрын
Some good tips there!
@theprogrammingshuttle29756 жыл бұрын
+= 1 a hit topic
@GlukAlex6 жыл бұрын
Interesting terminology used for partial 18:00 usually it is called something like en.wikipedia.org/wiki/Currying
@safuya18336 жыл бұрын
Partials and currying are subtly different. Currying allows you to convert a function with more than one argument, and make it into chained function calls that each take one argument (making your functions easier to pipe together with other functions). add = lambda a, b: a + b add(1, 2) 3 becomes add = lambda a: lambda b: a + b add(1)(2) 3 Partials take a fixed value for one of the arguments. So you could create an add5 function. It's a way of taking generic functions and applying them to a more specific field. add = lambda a, b: a + b add5 = partial(add, b=5) add5(2) 7
I don't think that *intermediate* programmers wouldn't know most (if not all) of this stuff
@riosdellacueva64823 жыл бұрын
basic python101 come man - cool hair girl...
@gsb224 жыл бұрын
20:02 cringe af
@Mogwai883 жыл бұрын
problem?
@ThunderAppeal4 жыл бұрын
Great presentation. But I hate that she follows the same formula as all the others, one of the very few presenters who present something useful but the goofy examples that everyone uses to cater to the lowest common denominator is beneath her.