This Is Why Python Data Classes Are Awesome

Data classes in Python are really powerful and not just for representing structured data. In this video, I show you what you can do with dataclasses as well as new capabilities that have been added in Python 3.10.
💡 Get the FREE 7-step guide to help you consistently design great software: arjancodes.com/designguide.
🎓 Courses:
The Software Designer Mindset: www.arjancodes.com/mindset
The Software Architect Mindset: Pre-register now! www.arjancodes.com/architect
Next Level Python: Become a Python Expert: www.arjancodes.com/next-level...
The 30-Day Design Challenge: www.arjancodes.com/30ddc
🛒 GEAR & RECOMMENDED BOOKS: kit.co/arjancodes.
👍 If you enjoyed this content, give this video a like. If you want to watch more of my upcoming videos, consider subscribing to my channel!
💬 Discord: discord.arjan.codes
🐦Twitter: / arjancodes
🌍LinkedIn: / arjancodes
🕵Facebook: / arjancodes
👀 Code reviewers:
- Yoriz
- Ryan Laursen
- Sybren A. Stüvel
- Dale Hagglund
🎥 Video edited by Mark Bacskai: / bacskaimark
🔖 Chapters:
0:00 Intro
0:49 What are data classes?
1:37 Explaining the example
4:00 Dataclasses basics
5:45 Assigning default values
8:54 Excluding arguments from the initializer
9:44 Using post_init to generate extra fields
11:25 Private/protected members
11:59 Excluding information from the repr
12:43 Freezing a dataclass
14:59 (new in Python 3.10) kw_only
16:10 (new in Python 3.10) match_args
17:00 (new in Python 3.10) slots
21:30 Final thoughts
#arjancodes #softwaredesign #python
DISCLAIMER - The links in this description might be affiliate links. If you purchase a product or service through one of those links, I may receive a small commission. There is no additional charge to you. Thanks for supporting my channel so I can continue to provide you with free content each week!

Пікірлер: 509

  • @ArjanCodes
    @ArjanCodes7 ай бұрын

    💡 Get the FREE 7-step guide to help you consistently design great software: arjancodes.com/designguide.

  • @saketh_s
    @saketh_s5 ай бұрын

    One thing to note, when you pass data class "frozen=True", instance is immutable. So at 13:29 you are actually getting error for search_string which we are trying to change at _post_int_ at object creating not for person name (line 25) You can not change fields even inside the class even with setter methods.

  • @vedambala
    @vedambala Жыл бұрын

    Arjan, You should seriously consider doing a full fledged Python course from beginner to advance level laden with Projects so we can learn Python the Pythonic way.

  • @coupmd
    @coupmd2 жыл бұрын

    Enjoyed this video. Would enjoy more videos on intermediate/advanced python standard library tools and their examples of their intended use cases.

  • @sbeau
    @sbeau2 жыл бұрын

    Arjan, your ability to explain detail in a structured, easy to follow format is second to none. Thank you for another great tutorial.

  • @VladimirSanchez

    @VladimirSanchez

    Жыл бұрын

    He's in the same league as Nana! ;)

  • @hematogen50g
    @hematogen50g9 ай бұрын

    I came to Python from C# so I picked up coding quickly. But thinking in python way is harder, so such videos really help me develop python mindset.

  • @jordansilke3629
    @jordansilke36292 жыл бұрын

    This is truly an excellent successor to your earlier video on data classes, bravo!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thanks Jordan, glad you liked it!

  • @FrankenLab
    @FrankenLab2 жыл бұрын

    @ArjanCodes, great video. I consider myself a casual programmer and have been programming with Python for about 5yrs and absolutely love it. I started programming "casually" in the 80's with C, Pascal, Assembler, then Perl and now Python. I really enjoyed C and Perl, but Python is by far my favorite now. This is the first video I've seen of yours and based on that I just subscribed to your channel. I enjoy your style and explanations and I don't have to play the video at twice the speed waiting for you to get to the point. I'm looking forward to seeing more of your Python videos.

  • @wbellmangmail
    @wbellmangmail2 жыл бұрын

    Just came across you channel. I've watched a couple of your other videos as well... I happen to be working on a project and your videos on dependency injection vs. dependency inversion as well as your video on structural pattern matching have been super helpful! Awesome stuff! Thanks for getting content out there (and chapter-izing your videos. ;) )!

  • @techassets
    @techassets2 жыл бұрын

    I have an observation. Even if you remove the person.name = "Arjan" and set the dataclass frozen=True you will have a FrozenInstanceError. Because you use the __post_init__ method and the frozen dataclass does NOT allow it ! So you must remove the __post_init__ method if you want to freeze the dataclass and prove that you cannot modify it after initialization. THANK YOU FOR YOUR AMAZING VIDEOS !

  • @MiguelRozsas

    @MiguelRozsas

    Жыл бұрын

    so, you are saying we not have both ? A frozen class and __post_init__ ? There is any workaround for this ?

  • @thomasoa
    @thomasoa2 жыл бұрын

    The error you got one the frozen case was not when you set .name = “Foo”, but in the __post_init__ method, setting _query_string. Is there any way to do post_init when using a frozen dataclass?

  • @yakkayakka360

    @yakkayakka360

    Жыл бұрын

    I noticed that too. Glad I'm not the only one. Did you ever get an answer?

  • @bryan_hiebert
    @bryan_hiebert Жыл бұрын

    Just like every video from you my knowledge of programming with python is advanced. I really appreciate the content you provide, thank you!

  • @Cookie-mv2hg
    @Cookie-mv2hg2 жыл бұрын

    Since we're talking a lot about dataclasses, I wonder would it be great combining with sql database. If we could get a review that would be very helpful!

  • @ChrisPatti
    @ChrisPatti Жыл бұрын

    I really love this video! It’s an excellent quick, guided tours to how powerful data classes, can be. Thanks for making it!

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thank you Christopher. Glad it was helpful!

  • @songsft.googleassistant2542
    @songsft.googleassistant25422 жыл бұрын

    May you have tons of subs Arjan cause you're one of the few youtubers whose python codes aren't messed up and you're instructions are on the point and useful.

  • @neoporcupine
    @neoporcupine Жыл бұрын

    Working my way through my third LinkedIn Learning (LIL) Python course, all of which claim to teach you the data structures available. Arjan's short video explains a dozen reasons why you want to use dataclass that the LIL courses didn't include. Thank you!

  • @barrykruyssen
    @barrykruyssen Жыл бұрын

    Hi Arjan. Great video, very well presented. I've just found your channel and will be watching all your videos as time permits. I'm a retired software engineer (started back in the early 80's). 5 weeks ago I decided, in my retirement, to switch back to linux (and python - which I have never used), just for fun, after 25 years in microsoft products (prior to that I was in the Unix world). I'll be changing 2 of my classes to data classes ASAP. I have just read your Software Design Guide and agree with much of what you've written. I think you have glossed over the most important aspect "Who’s it intended for?". Determining who is doing what, why they do it and what they expect from it and then managing the expectations is the key to a successful implementation. You do mention your “zoom out and zoom in” approach which probably encompasses this but in my planning, the people are the key and if there are problems in this area it can be very costly down the track (we qualified our prospective clients and if the people problem was too great we walked away from deals), as you say we write the code for the client, not for us. Thanks

  • @aminramazanifar9743
    @aminramazanifar9743 Жыл бұрын

    The final note about slot was really great. Thanks

  • @christensencode7538
    @christensencode75382 жыл бұрын

    Your videos on dataclasses are awesome! I've used them for a few projects and they really help.

  • @alfonsov3190
    @alfonsov31902 жыл бұрын

    I had a couple of questions during the video, but immediately after they surged, you addressed them. Thanks a lot, as usual!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    You're welcome :).

  • @Volcan-kf3oz
    @Volcan-kf3oz Жыл бұрын

    This guy really know what he is doing every video I've seen he able to break it down to where even a person new to python can understand "if you can't explain it simply, you don't understand it well enough." - Albert Einstein

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thank you so much!

  • @flynnowen2478
    @flynnowen24782 жыл бұрын

    Love your content Arjan! I've been making an effort to apply your teachings as much as possible in my code. Would you consider doing any future videos on unit testing? I think it would be super useful. I personally use pytest, but you might know better frameworks.

  • @mauisam1
    @mauisam12 жыл бұрын

    Again Arjan, another fantastic video. If I become half the programmer you are I will be lucky. But I just have the love of programming so I will continue to work on improving my knowledge and skill set. So many programmer say just read the Docs, but I learn from examples and the Docs usually have few if not poor examples. So a big part of my improvement will be in thanks to your love of sharing your knowledge. Thank you...

  • @robboerman9378
    @robboerman93785 ай бұрын

    I love your concise and clear explanations. Going to look into your course!

  • @mampiisaotaku
    @mampiisaotaku Жыл бұрын

    i just discovered your channel a few videos back. and what you share is pure gold

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thank you so much, glad you like it!

  • @JoshSmeda
    @JoshSmeda2 жыл бұрын

    I really love your videos on these subjects - keep it up!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Glad to hear, Joshua - and I will ;).

  • @nyghl
    @nyghl2 жыл бұрын

    It was fun to follow along and learn! Thank you ArjanCodes.

  • @justinpeter5752
    @justinpeter5752 Жыл бұрын

    Very good video. I think I learned a lot about classes in this video and I can see where I can use some of these in my code. Well I’m not quite there yet with building classes with multiple inheritance to worry about the issue with slots. But at least I’ll start using slots for performance improvements. Overall, bravo. I’m starting to understand more about Python from a systematical perspective.

  • @zuydra
    @zuydra2 жыл бұрын

    Hi Arjan, your videos on Python are the best I have ever seen on KZread. Please keep up the good work 👍

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thanks so much! And will do 😊

  • @amosmunezero9958
    @amosmunezero9958 Жыл бұрын

    Great tutorial in Python, its been a while I havent done some Python, I didnt know much about DataClass. So thank you.

  • @matthewnuzzaco2849
    @matthewnuzzaco28492 жыл бұрын

    This was super helpful, I used some of these tips almost immediately.

  • @WalterBoring
    @WalterBoring Жыл бұрын

    Cool video. I didn't even know about the dataclasses lib until this. I'm putting it into my project now.

  • @jma42
    @jma422 жыл бұрын

    I also want to add that you can actually use asdict method from dataclasses and from_dict method from dacite library. It works as it sounds to be and even works in nested dicts/dataclasses!

  • @christopheanfry2425
    @christopheanfry24259 ай бұрын

    Thank you so much for this video and for the design guide I’ve just download, it’s literally gold 🙏

  • @ArjanCodes

    @ArjanCodes

    9 ай бұрын

    You’re welcome! Glad you find it helpful.

  • @ninadloke785
    @ninadloke7852 жыл бұрын

    Watching your video for first time. Deserves subscribe!! Great work and thanks!!

  • @AbhishekVaid
    @AbhishekVaid2 ай бұрын

    The progression of introducing features and clarity of explanation is very high ! Great Job !

  • @ArjanCodes

    @ArjanCodes

    2 ай бұрын

    Glad you liked the video!

  • @sambeard4428
    @sambeard44286 ай бұрын

    Geweldig en duidelijk overzicht van deze erg handige feature. Gisteren liep ik precies nog tegen deze use case aan, veel boillerplate code. Dit lost het mooi op. Thanks!

  • @SystemSigma_
    @SystemSigma_2 жыл бұрын

    Nice overview of dataclasses.. Next, we need an extensive video about the testing frameworks and mocking for TDD!

  • @Rebeljah
    @Rebeljah2 жыл бұрын

    New AC video! I am actually using DCs right now to define a common set of data for server/client communication. It's very nice because I can subclass a super dataclass in order to get functionality like serialization/deserialization fairly easily. Adding new data types just takes a few lines of code now!

  • @centar1595

    @centar1595

    2 жыл бұрын

    So you're enjoying the AC/DC video? :)

  • @Rebeljah

    @Rebeljah

    2 жыл бұрын

    @@centar1595 yes I am! Lol

  • @seans9168
    @seans91682 жыл бұрын

    Great overview and useful examples! Thanks for the video.

  • @marknielsen4494
    @marknielsen44944 ай бұрын

    Super high quality content - thank you Arjan!!!

  • @ArjanCodes

    @ArjanCodes

    4 ай бұрын

    Glad you enjoyed it, Mark!

  • @davidlakomski3919
    @davidlakomski39192 жыл бұрын

    I've tried 2 days ago to make a package to manage state of jobs with Pydantic, and even if it was less messy than what I did before, I realize now how easier and cleaner it would have been with dataclasses ! Thanks for the excellent content !

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Glad it was helpful, David!

  • @qrubmeeaz
    @qrubmeeaz2 жыл бұрын

    ... aaand he's done it again!! Brilliant! Thank you.

  • @Saidffff
    @Saidffff2 жыл бұрын

    Nice one Arjan! Also, __slots__ give faster attribute access AND space savings in memory due to switching to a more compact data structure. When you create many instances of the class, that is another advantage. Got that from reading 'Python distilled', written by the venerable David M. Beazly.

  • @chswin

    @chswin

    2 жыл бұрын

    Lol a python dev worried about memory allocations…

  • @Andremzsptm
    @Andremzsptm2 жыл бұрын

    Excellent video as always @ArjanCodes!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thanks Andre, glad you liked it!

  • @Rebeljah
    @Rebeljah2 жыл бұрын

    I am 100% gonna use the repr=False option, thank you!

  • @nusermane1076
    @nusermane1076 Жыл бұрын

    Incredibly good explanation, will try this for myself tomorrow 👍👍👍

  • @ShahriyarRzayev
    @ShahriyarRzayev2 жыл бұрын

    Awesome material as usual, keep going and thanks for sharing)

  • @alejandropereira5680
    @alejandropereira5680 Жыл бұрын

    Very useful explanation, to the point and with real use case, really liking these vids

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks so much Alejandro, glad you liked it!

  • @mpotane
    @mpotane2 жыл бұрын

    Wow, the most complete tutorial I've seen. Not a single detail has been missed.

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks, glad you liked it!

  • @AndreyPutilov
    @AndreyPutilov2 жыл бұрын

    Great explanations! Thanks for the content!

  • @rrestituti
    @rrestituti5 ай бұрын

    Amazing video. I didn't know dataclasses and I found it amazing. Thanks, Arjan . Got a new subscriber.

  • @ArjanCodes

    @ArjanCodes

    5 ай бұрын

    We're glad to have you, welcome aboard!

  • @amadzarak7746
    @amadzarak77468 ай бұрын

    Wow! How did I JUST find this channel. You are awesome man!

  • @ArjanCodes

    @ArjanCodes

    8 ай бұрын

    Welcome aboard! :)

  • @f4bglv
    @f4bglv Жыл бұрын

    Excellent video, very informative, concise and enjoyable... as always! Thanks again.

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks so much Fabio, glad the content is helpful!

  • @mattcauth
    @mattcauth2 жыл бұрын

    Very, very useful and well done. Thank you!

  • @simonetheditch809
    @simonetheditch8092 жыл бұрын

    Love the way you teach. Would be so much appreciated if you can make a similar course in C++

  • @Bushade
    @Bushade Жыл бұрын

    Great video Arjan! Learned quite some new things even though I regularly use dataclasses. One suggestion which I encounter quite often in data science: Where and when to properly calculate additional properties (features for my models) after first initialization when there are dependencies between multiple objects, e.g, you have to wait for both to finish initialization, then calculate features. I'm currently working with a hirarchy of dataclasses and calculate these properties in the top level in __post_init__ but am unsure if that's the best way. Thanks!

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks so much, glad it was helpful!

  • @wtfKwaku
    @wtfKwaku2 жыл бұрын

    OMG, I been working on this project and for like 3 days I been trying assign a class and return something! Great Video!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Glad it was helpful!

  • @andywilson1162
    @andywilson1162 Жыл бұрын

    Great work Arjan, I would love to hear how you use the class when dealing with lots of data, do you use a dictionary of that class for example? Is that the best way, etc.

  • @equu497
    @equu497 Жыл бұрын

    I wasn't even trying to learn about dataclasses...but it came up on my recommended and I watched the entire thing- Got me thinking I should clean up some old code.

  • @ritzg98
    @ritzg988 ай бұрын

    This guy is excellent. I've only watched a couple of his videos so far. Planning on watching a few more today. Clear, concise, accessible. So far, great!

  • @ArjanCodes

    @ArjanCodes

    8 ай бұрын

    Glad you like them!

  • @naderbazyari2
    @naderbazyari2 Жыл бұрын

    I am modifying my code in pycharm right now according to your tips. Awesome video. Much much appreciated.

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Nice work!

  • @fuadpalchayev7269
    @fuadpalchayev72699 ай бұрын

    Thank you Arjan!👍

  • @borisvujicic7817
    @borisvujicic78172 жыл бұрын

    This is great. ArjanCodes, have you thought about doing a video about Python descriptors? I think it could be very useful, as there is no good ones on KZread.

  • @johntamplin

    @johntamplin

    2 жыл бұрын

    Take a look at the videos by Corey Schaffer. A very different style, but equally good, in my opinion. I believe he did one on Python descriptors.

  • @aungkyawkyaw9114
    @aungkyawkyaw9114 Жыл бұрын

    next level! Thanks Uncle Arjan.

  • @auroraRealms
    @auroraRealms Жыл бұрын

    Although I like the ability to learn and use Data Classes. All my years of database programming has taught me to use JSON, and Dictionaries as much as possible. Especially in Web Services. The caveat to using Data Classes is that; changing a column type, name or description, or adding or removing columns ends up as a use case/feature ticket for the programmer which can take a bit of time to run through the development cycle. These column changes are guaranteed to happen all the time, in the life cycle of the product. A second problem, is that the code must be completely thrown out, when starting a new product. Using Dictionaries very often can allow these column changes from config files without recompiling or restructuring the code base. Going back to Web Services. Dictionaries can be web requests and responses, in JSON, without translation. This makes for high performance, and easy maintenance in the life cycle of product. It also makes copying and pasting the code directly into other products a possibility.

  • @duaneatnofroth

    @duaneatnofroth

    10 ай бұрын

    I checked out your channel in hopes to see some examples of the techniques you mentioned in your reply above. I think you might get a good response if you ever decide to do some programming videos. I'd love to see some from you.

  • @fabio.1

    @fabio.1

    5 ай бұрын

    👀

  • @GanklThat

    @GanklThat

    3 ай бұрын

    ​​@@duaneatnofrothhe doesn't need to give examples when what he's stating is already best practice when working with data

  • @JPy90
    @JPy902 жыл бұрын

    Awesome man.! Just arrive to your channel. Seems amazing

  • @marcioneto3016
    @marcioneto30162 жыл бұрын

    Amazing video, as usual. Here's a suggestion: how about a video on the infamous Visitor pattern next? Thanks for the amazing content. I really liked the Software Designer Mindset course, by the way.

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thanks for the suggestion, Márcio, and glad to hear you enjoyed the course!

  • @XCanG
    @XCanG2 жыл бұрын

    I use similar thing when working with fastapi, library named SQLModel, what it basicaly is very similar to dataclass, but it has validation from pydantic, so if you, say assign to person with a name type int, like Person(name=1), then you get ValidationError exception. It is more useful in fastapi as it may be used as a mechanism to prevent API being called and executed if provided arguments are not match. And you can have more validation methods in Field, like: le, ge, lt, gt; for list types you may provide min/max range, for strings you may add regex or even something more custom via function. I like it a bit more than just dataclass

  • @NdamuleloNemakh
    @NdamuleloNemakh Жыл бұрын

    Exactly what I've been thinking all along, "strict mode" is a feature that must be seriously considered

  • @jaa928
    @jaa9282 ай бұрын

    Thank you for the clear and concise explanation. As an experienced programmer, but newcomer to python this was an excellent, example-driven discussion.

  • @ArjanCodes

    @ArjanCodes

    2 ай бұрын

    Happy you enjoyed the content!

  • @hcubill
    @hcubill2 жыл бұрын

    Love the video Arjan. It's great you explain the new features in 3.10. in my team we wonder what the benefit of upgrading is and this helps a lot!

  • @shotihoch
    @shotihoch2 ай бұрын

    And again... VERY interesting. Started as video for tea-brake, finished in my obsidian, writing down some very interesting tips. Thanks.

  • @ArjanCodes

    @ArjanCodes

    2 ай бұрын

    I'm glad you found the video useful! :)

  • @serhiikroshka893
    @serhiikroshka8935 ай бұрын

    Great overview. Thanks.

  • @ArjanCodes

    @ArjanCodes

    5 ай бұрын

    Glad you enjoyed the video!

  • @AngelHdzMultimedia
    @AngelHdzMultimedia Жыл бұрын

    Great video on Dataclasses! Thank you! Sadly, I had to learn with the docs, then this video popped up... :) +1 for the usage of type annotations. ;)

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks so much, glad the content is helpful!

  • @abdelkadergnichi6643
    @abdelkadergnichi6643 Жыл бұрын

    You are awesome man i really appreciate you work bro your videos are so clear and beefy ❤❤

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thank you so much! ❤

  • @wv1138
    @wv11382 жыл бұрын

    Good point about a possible strict mode

  • @ChrisBNisbet
    @ChrisBNisbet2 жыл бұрын

    Hmm, freezing the data class resulted in an error when trying to set up _search_string, which is probably not what you want. Did I read the error output correctly?

  • @JohnnysaidWhat
    @JohnnysaidWhat Жыл бұрын

    Great video really interesting topic had no idea the data class decorator existed. Just a small suggestion. The top end eq on your voice is a little shrill. DeEsser or small eq to lower the high freq bands. Thank you for this video all the same!

  • @rablaze
    @rablaze2 жыл бұрын

    Love the videos! I was watching a rerun of a Supernatural episode while watching this and the actor that plays Crowley and you kinda like alike lol

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    LOL, I see what you mean :).

  • @AlanHernandez-mw6xb
    @AlanHernandez-mw6xb Жыл бұрын

    This was actually very entertaining. Thanks!🎃

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks so much Alan, glad you liked it!

  • @fvbakel
    @fvbakel2 жыл бұрын

    Great overview of the dataclass. I wonder what your view is on binding the dataclass to a SQL database. Is there an easy way? It seems that the Django and sqlalchemy methods are not compatible with the dataclass? Further more, what do you think about nested dataclass and the impact on hashing?

  • @8bitscoding220
    @8bitscoding2202 жыл бұрын

    Cool video, thanks for it. I think that I would argue that if there are valid arguments against multiple inheritance (and valid arguments in favor of it), the limitations of an oriented object language should not be considered one. To make Python better we have to stop defending the poor design choices that were made in the past and move forward (I'm all in favor of breaking things if I can finally write def myfunc(myarg=[]) like in any other language, for example).

  • @dmytroparfeniuk2670
    @dmytroparfeniuk2670 Жыл бұрын

    A question about integration tests. What are you doing with the database when you write your tests? Create a mock of the database or use the same database as on the production but running locally (we also have to to adjust the CI to with the external database somewhere), or run create test connection with sqlite that will be used for testing (also simplify the previous approach but only if you don't use any Postgres-specific stuff in your application)?

  • @anonymous102592
    @anonymous1025922 ай бұрын

    Thanks , great explanation, and overview

  • @ArjanCodes

    @ArjanCodes

    2 ай бұрын

    Thank you for the kind comment!

  • @zakseipel9494
    @zakseipel9494 Жыл бұрын

    Talking about strict mode that was one of the reasons I started using Black and setting it to a very strict set of rules. It forces me to write leaner code and not be lazy. Comes at a price of extra dev time but worth it.

  • @presstv
    @presstv Жыл бұрын

    great video. Thanks Arjan

  • @lukasbelck4514
    @lukasbelck45142 жыл бұрын

    Great content as always!

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thank you, Lukas!

  • @JoshPaulie
    @JoshPaulie2 жыл бұрын

    If you're printing an object you'd expect the repr to be printed, not str, no? Thanks for videos! Enjoying this one on my lunch break 😋 Every few seconds I find myself yelling "wait what?!" Learned a lot!!

  • @radomirmijovic2605
    @radomirmijovic2605 Жыл бұрын

    Great video! Thanks

  • @MarkHimsley
    @MarkHimsley Жыл бұрын

    At 13:28 the exception is that the __post_init__ cannot assign to _search_string in your frozen data class, not that you were setting the name to Arjan after the data object was constructed. So it looks like using __post_init__ to create calculated fields from the initialised data is not going to work.

  • @MrGeordiejon

    @MrGeordiejon

    Жыл бұрын

    Another video explains this and how you can use ```object.setattr(self, value)``` I spotted that too and looked before commenting - 👍

  • @jakefischer8281
    @jakefischer82812 жыл бұрын

    Arjan you the man!

  • @xl0xl0xl0
    @xl0xl0xl02 жыл бұрын

    Thank you for the video. You could use the Jupyter integration with vscode to avoid switching back and for the between code and output.

  • @ArjanCodes

    @ArjanCodes

    2 жыл бұрын

    Thanks for the suggestion - will look into this!

  • @franferri
    @franferri2 жыл бұрын

    Very nice videos Arjan, I have improved my skills a lot with some of the info. May I ask you the brand of the glasses you are wearing? do you have the model.

  • @hisamsowaib956
    @hisamsowaib9562 жыл бұрын

    Hope you can create a video on how we can use dataclasses with data coming from db. I think that is a more real life scenario. Thanks a lot.

  • @vladimirsumarokov6847
    @vladimirsumarokov6847 Жыл бұрын

    VERY useful! Thanks!

  • @ArjanCodes

    @ArjanCodes

    Жыл бұрын

    Thanks Vladmir, Glad that you liked it.

  • @solvability2782
    @solvability27822 жыл бұрын

    very cool. I will check it out.

  • @pa1nk1ller14
    @pa1nk1ller14 Жыл бұрын

    Great video :) One thing to ask is, do you use dataclasses strictly for data related classes or for classes containing methods as well?

  • @GustavoLeig

    @GustavoLeig

    Жыл бұрын

    Could you find this answer? I have the same doubt.

  • @thallysrc
    @thallysrc2 жыл бұрын

    i simply love your channel

  • @metensis
    @metensis2 жыл бұрын

    Great video! You may want to add in a new video the new feature of 3.10 to allow children dataclasses with kw_only