ht16 - da361a - oop med python
TRANSCRIPT
![Page 1: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/1.jpg)
OOP med Python… och att skriva bra kod
![Page 2: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/2.jpg)
Dagens föreläsningOOAD
Att skriva bra kod
OOP
![Page 3: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/3.jpg)
OOA => OOD => OOP
![Page 4: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/4.jpg)
Vad kan ni om OOA?
![Page 5: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/5.jpg)
Vad kan ni om OOD?
![Page 6: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/6.jpg)
PEPPython Enhancement Proposalshttps://www.python.org/dev/peps/
![Page 7: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/7.jpg)
![Page 8: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/8.jpg)
De viktigaste punkternaBeautiful is better than ugly.
Simple is better than complex.
Readability counts.
If the implementation is hard to explain, it's a bad idea.
![Page 9: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/9.jpg)
PEP 8https://www.python.org/dev/peps/
![Page 10: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/10.jpg)
PEP 8 är en style-guide för att skriva Python-kod
![Page 11: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/11.jpg)
Det viktigaste med PEP 8
Kod läses många fler gånger än den skrivs
Samstämmighet för de som skriver/läser kod
![Page 12: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/12.jpg)
Undantag mot PEP 8? När?
Lyssna på omgivningen (kanske ert företag har andra designregler för kod?)
Minskar läsbarheten
![Page 13: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/13.jpg)
De viktigaste punkterna!
4st mellanslag (alt. TAB)
Mixa aldrig tabbar och mellanslag
Ha maximalt 79 tecken per rad, annars radbryt
Använd blanka rader med måtta
![Page 14: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/14.jpg)
Dålig radlängd
![Page 15: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/15.jpg)
Bra radlängd #1
![Page 16: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/16.jpg)
Bra radlängd #2
![Page 17: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/17.jpg)
Radbrytningar
![Page 18: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/18.jpg)
ImportsDåligt
Bra
![Page 19: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/19.jpg)
BlankstegDåligt
![Page 20: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/20.jpg)
Blankstegbra
![Page 21: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/21.jpg)
Dåligt Bra
![Page 22: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/22.jpg)
Kommentarer
![Page 23: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/23.jpg)
RekommendationerBra Dåligt
![Page 25: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/25.jpg)
Automatisera PEP8http://stackoverflow.com/questions/14328406/tool-to-convert-python-code-to-be-pep8-compliant
![Page 26: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/26.jpg)
Cheat sheethttps://gist.github.com/RichardBronosky/454964087739a449da04
![Page 27: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/27.jpg)
OOP med Python
![Page 28: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/28.jpg)
Procedural programming is a method of writing software. It is a programming practice centered on the
procedures or actions that take place in a program
![Page 29: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/29.jpg)
![Page 30: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/30.jpg)
Procedural programming is made up of one or more proceduresProcedures operate on data items that are separate from the procedure
Data items are passed from one procedure to another
Focus is on the creation of procedures that operate on the program’s data
![Page 31: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/31.jpg)
Object-oriented programming is centered on objects. Objects are created from abstract
data types that encapsulate data and function together.
![Page 32: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/32.jpg)
OOPAn object is a software entry that contains both data and procedures
Data contained in an object is known as the object’s data attributes
Procedures that an object performs are known as methods
![Page 33: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/33.jpg)
![Page 34: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/34.jpg)
A class is code that specifies data attributes and methods for a particular
type of data.
![Page 35: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/35.jpg)
![Page 36: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/36.jpg)
![Page 37: HT16 - DA361A - OOP med Python](https://reader031.vdocuments.net/reader031/viewer/2022021506/587291201a28ab36118b6341/html5/thumbnails/37.jpg)