Nina Zakharenko - Elegant Solutions For Everyday Python Problems - PyCon 2018

  Рет қаралды 73,934

PyCon 2018

PyCon 2018

Күн бұрын

Пікірлер: 38
@lbbc33
@lbbc33 6 жыл бұрын
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_gunna
@420_gunna 2 жыл бұрын
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
@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.
@rickylim4910
@rickylim4910 5 жыл бұрын
I really like your talk. Thank you!
@plato4ek
@plato4ek 3 жыл бұрын
there are no slider at the github link, and no slides at speakerdeck either
@borisurkan2223
@borisurkan2223 6 жыл бұрын
Great presentation. Which font is used for code?
@ManuelBTC21
@ManuelBTC21 6 жыл бұрын
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.
@borisurkan2223
@borisurkan2223 6 жыл бұрын
Manuel Barkhau I already have. Monospaced font is not Inconsolata.
@ManuelBTC21
@ManuelBTC21 6 жыл бұрын
Boris Đurkan well, what is it then?
@borisurkan2223
@borisurkan2223 6 жыл бұрын
Manuel Barkhau I don’t know. Most similar is IBM Plex Mono.
@borisurkan2223
@borisurkan2223 6 жыл бұрын
Thanks!
@michaelthomheadley
@michaelthomheadley 5 жыл бұрын
Excellent talk!
@qu4ku
@qu4ku 6 жыл бұрын
That was a dmn cool presentation.
@DJCronixx
@DJCronixx 5 жыл бұрын
Absolutely Amazing!!!!!
@drd105
@drd105 5 жыл бұрын
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.
@gJonii
@gJonii 4 жыл бұрын
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 :/
@RoushanSingh07492
@RoushanSingh07492 6 жыл бұрын
Nice with great reference !!
@谷天赐
@谷天赐 6 жыл бұрын
very useful, thank you.
@mitoliang8950
@mitoliang8950 4 жыл бұрын
great! great!
@not_a_human_being
@not_a_human_being 6 жыл бұрын
Some good tips there!
@theprogrammingshuttle2975
@theprogrammingshuttle2975 6 жыл бұрын
+= 1 a hit topic
@GlukAlex
@GlukAlex 6 жыл бұрын
Interesting terminology used for partial 18:00 usually it is called something like en.wikipedia.org/wiki/Currying
@safuya1833
@safuya1833 6 жыл бұрын
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
@LouisMaddox
@LouisMaddox 4 жыл бұрын
Brava 👏👏👏😃
@RamezAshraf
@RamezAshraf 2 жыл бұрын
Slides: www.slideshare.net/nnja/elegant-solutions-for-everyday-python-problems-pycon-2018
@nxxxxzn
@nxxxxzn 5 жыл бұрын
I mix up words just like she does
@dev.cl0ne
@dev.cl0ne 4 жыл бұрын
I don't think that *intermediate* programmers wouldn't know most (if not all) of this stuff
@riosdellacueva6482
@riosdellacueva6482 3 жыл бұрын
basic python101 come man - cool hair girl...
@gsb22
@gsb22 4 жыл бұрын
20:02 cringe af
@Mogwai88
@Mogwai88 3 жыл бұрын
problem?
@ThunderAppeal
@ThunderAppeal 4 жыл бұрын
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.
Carl Meyer - Type-checked Python in the real world - PyCon 2018
32:10
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
Talk - Trey Hunner: Python Oddities Explained
25:45
PyCon US
Рет қаралды 9 М.
Loop like a native: while, for, iterators, generators
29:15
Next Day Video
Рет қаралды 118 М.
Reuven M. Lerner - Practical decorators - PyCon 2019
29:12
PyCon 2019
Рет қаралды 42 М.
How Senior Programmers ACTUALLY Write Code
13:37
Thriving Technologist
Рет қаралды 1,6 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН