0:00
рдЖрдЬ рдХреЗ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдореИрдВ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкрд╛рдЗрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЬрдм рдЖрдк рдЗрдиреЗрдбрд┐рдЯреЗрдВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд░реЗрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ access specifiers рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ exact rules рд╣реИрдВ рдЗрди рд╕рдмрдХреЛ рд▓реЗрдХреЗ рдереЛрдбрд╝реА рд╕реА рдЪреАрдЬрд╝реЗ рд╣реИрдВ я┐╜я┐╜
0:30
рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдпрд╣ рдмрддрд╛ рджреЛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ, рдореИрдВ рдпрд╣ рдХреЛрдИ рдореВрд╡реА рдирд╣реАрдВ рд╣реИ
0:33
рдЬреЛ рдореИрдВ рдЖрдкрдХреЛ spoilers рдЬреЛ рдпрд╣рд╛рдБ рдкрд░ рджреЗ рд░рд╣рд╛ рд╣реВрдБ, рдореИрдВ рдЖрдкрдХреЛ concept рднреА рдмрд╛рдд рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж рднреА рд╣рдо рд▓реЛрдЧ private variables, public variables, protected variables
0:41
рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдкрд╛рдЗрдерди рдореЗрдВ рддреЛ рдпрд╣ рдХреНрдпрд╛ рдорддрд▓рдм рд╕реАрди рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЧрдпрд╛ рдПрдХ рдЬрдЧрд╣ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реЛ рдХрд┐ рд╣реЛрддреЗ рдирд╣реАрдВ рд╣реИ рдкрд╛рдЗрдерди рдореЗрдВ рдкрдмреНрд▓рд┐рдХ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдФрд░ рджреВрд╕рд░реА рдЬрдЧрд╣ рдЖрдк рд▓реЛрдЧ рдХрд╣ рд░рд╣реЗ рд╣реЛ рдХрд┐ рд╣рдо рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЙрдирдХреА рддреЛ рдпрд╣ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬрдм access modifiers рдХреА рдмрд╛рдд рд╣реЛрддреА я┐╜я┐╜
1:11
рддреЛ рдЙрд╕рдХреЗ variables by default рддреЛ public рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ private рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
1:16
private рдмрдирд╛ рджрд┐рдпрд╛, рдореИрдВ in general object oriented programming рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
1:20
by the way рдпрд╣ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВ, рдпрд╣ рдЕрднреА рдпрд╣рд╛рдБ рдкрд░ python рдХреЛ рдПрдХ minute рдХреЗ рд▓рд┐рдП side рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ
1:24
in general object oriented programming рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА language рдореЗрдВ рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ object oriented programming рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд░ рд╕реБрдирддреЗ рд╣реЛ рддя┐╜я┐╜
1:29
public рдХрд╛ рдорддрд▓рдм рдЕрдЧрд░ рдореИрдВрдиреЗ рдмрд╛рд╣рд░ рд╕реЗ class рдХреЗ access рдХреЗ рдорд╛рд▓реЛ рдореИрдВрдиреЗ class рдмрдирд╛рдИ рдпрд╣рд╛рдБ рдкрд░ рдереЛрдбрд╝рд╛ code рд▓рд┐рдЦрдХреЗ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдБ рдЖрдкрдХя┐╜я┐╜
1:36
рдорд╛рд▓реЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкрд░ class рдмрдирд╛рдИ employee рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдореИрдВрдия┐╜я┐╜
1:41
рдорд╛рди рд▓реЛ рдореИрдВ рдпрд╣рд╛рдБ рдкрд░ pass рд▓рд┐рдЦрддрд╛ рд╣реВрдБ pass pass рдорддрд▓рдм рдХреБрдЫ рдирд╣реАрдВ рдареАрдХ рд╣я┐╜я┐╜
1:46
рдЕрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдБ a is equal to employee рдореИрдВрдиреЗ employee рдХрд╛ рдПрдХ instance рдмрдирд╛ рджрд┐рдпя┐╜я┐╜
1:51
рдареАрдХ рд╣реИ рдПрдХ object рдмрдирд╛ рджрд┐рдпрд╛ employee рд╕реЗ рдЕрдм рдЕрдЧрд░ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдБ a.emp1
1:56
is equal to рдФрд░ рдореИрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдБ 5 рдФрд░ рдореИрдВ рдЗрд╕рдХреЛ access рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВя┐╜я┐╜
2:01
a.emp1 рдХреЛ рддреЛ рд╣реЛрдЧрд╛ рдХреНрдпрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдкрд░ рдЬрдм рдореИрдВ a.emp1 рдХреЛ access рдХрд░реВрдБрдЧрд╛ рддреЛ рд╡реЛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддреЛ by default рдпрд╣ public рд╣реИ access рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд╛рд╣рд░ рд╕я┐╜я┐╜
2:10
private рдмрд╛рд╣рд░ рд╕реЗ access рдирд╣реАрдВ рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХрддреЗ protected рдЬреЛ рд╣реИ рд╡реЛ class рдХреЗ рдЕрдВрджрд░ рд╕реЗ access рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИ рдФрд░ sub class рд╕реЗ access рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣я┐╜я┐╜
2:19
рдпрд╛рдирд┐ рдХрд┐ child class рд╕реЗ access рдХреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдм python рдкрд░ рдЖрддреЗ рд╣реИя┐╜я┐╜
2:22
рдХрд┐ python рдореЗрдВ рдпреЗ рдЬреЛ access modifiers рд╣реЛрддреЗ рд╣реИрдВ public, private, protected рд╡реЛ рд╣реЛрддреЗ рднреА рдХреНрдпреЛрдВ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИя┐╜я┐╜
2:28
рдареАрдХ рд╣реИ рддреЛ рдореИрдВ рдЕрднреА рдЗрд╕ code рдХреЛ рдРрд╕реЗ рд░рдЦреВрдБрдЧрд╛ рдФрд░ рдпрд╣рд╛рдБ рдкрд░ access specifiers рдХреА рдмрд╛рдд рдХрд░реВрдБрдЧя┐╜я┐╜
2:32
access modifiers in python programming are used to limit the access of class variables
2:37
and class methods outside of class while implementing the concepts of inheritance
2:41
рдЕрдм types of access specifiers рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ public access modifier рд╣реЛрддрд╛ рд╣я┐╜я┐╜
2:44
private рд╣реЛрддрд╛ рд╣реИ protected рд╣реЛрддрд╛ рд╣реИ рдареАрдХ рд╣реИ рдЕрдм рдпрд╣рд╛рдБ рдкрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ public access modifier рдХреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИя┐╜я┐╜
2:50
variables public python underscore underscore init underscore underscore self method
3:20
рдиреЗрдо рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдореИрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ рдпрд╛рд░ рдХреНрдпреЛрдВрдХрд┐ рдкрдмреНрд▓рд┐рдХ рд╣реЛрддрд╛ рд╣реИ рдмрд╛рдЗрдЯрд┐рдлреЙрд▓реНрдб рдПрдХреНрд╕реЗрд╕реЗрд╕реЗрдмрд▓ рдлреНрд░реЙя┐╜я┐╜
3:25
outside рд╣реЛрддрд╛ рд╣реИ рддреЛ рдмрд╛рдп рдбрд┐рдлреЙрд▓реНрдЯ рдХреБрдЫ рднреА рдЖрдк рдмрдирд╛рддреЗ рд╣реЛ рдмрд╛рдп рдереЗ рдореЗрдВ рд╡рд╣ рдПрдХреНрд╕реЗрд╕реЗрдмрд▓ рд╣реЛрддрд╛ рд╣реИ рдлреНрд░реЙрдо рдЖрдЙрдЯрд╕рд╛рдЗрдб рдареАрдХ рд╣я┐╜я┐╜
3:31
рддреЛ рдСрд▓ рдж рд╡реЗрд░рд┐рдмрд▓реНрд╕ рдПрдВрдб рдореЗрдердбреНрд╕ рдЗрди рдкрд╛рдЗрдЯрди рдЖрдл рдмрд╛рдп рдбрд┐рдлреЙрд▓реНрдЯ рдкрдмреНрд▓рд┐рдХ рдПрдиреА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЗрди рдЕ рдХреНрд▓рд╛рд╕ рдлреЙрд▓реНрдб рдмрд╛рдп рд╕реЗрд▓реНя┐╜я┐╜
3:37
that is self.variable name are publicly accessible рдЬреИрд╕реЗ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ name publicly accessible рдея┐╜я┐╜
3:42
рд╣рдо access рдХрд░ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕рдХреЛ рдареАрдХ рд╣реИ рдПрдХ example рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкрд░ рджрд┐рдпрд╛ рд╣реБрдЖ рдЬреЛ рдХрд┐ рдЖрдк рд▓реЛрдЧ try out рдХрд░ рд╕рдХрддреЗ рд╣я┐╜я┐╜
3:47
рдЗрд╕рдореЗрдВ рджреЛ variables рд╣реИрдВ age рдХреЛ рднреА рд╣рдо access рдХрд░ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ name рдХреЛ рднреА access рдХрд░ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдареАрдХ рд╣я┐╜я┐╜
3:51
рдЕрдм рдпрд╣рд╛рдБ рдкрд░ рдореИрдВ рдЖрдк рд▓реЛрдЧ рдХреЛ access modifier рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВя┐╜я┐╜
3:55
private access modifier рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦреЛ by definition рдЕрдЧрд░ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВ рдУрдкреНрд╕ рдореЗрдВ рддреЛ private рдХрд╛ рдорддрд▓рдм рдХрд┐ рднрд╛рдИ access рдирд╣реАя┐╜я┐╜
4:01
рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХреЗрдВ рддреЛ private рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ access рдирд╣реАрдВ рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХреЗрдВ рддреЛ рдЕрдЧрд░ рд╣рдо рд▓реЛя┐╜я┐╜
4:07
double underscore рд╕реЗ prefix рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐рд╕реА рднреА variable рдХреЛ рдЬрд┐рд╕реЗ рдХрд┐ рдпрд╣рд╛рдБ рдкрд░ рдЕрдЧрд░ рдорд╛рд▓реЛ рдореИя┐╜я┐╜
4:10
self.double underscore рдХрд░ рджреВрдВ, рддреЛ рдореИрдВ рдЗрд╕рдХреЛ рдЕрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛, рдареАрдХ рд╣реИ
4:15
рддреЛ рдпрд╣рд╛рдБ рдкрд░ рдЗрд╕ рдмрд╛рдд рдХреЛ рдЖрдк рд▓реЛрдЧ рд╕рдордЭрдирд╛, рдкрд╣рд▓реЗ рддреЛ рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЕрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛
4:19
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдБ рдкрд░ error рдЖ рд░рд╣рд╛ рд╣реИ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реЛ рдореИрдВ рдЕрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ, However, a convention has been established to indicate that the variable or method should be considered private by prefixing its name with a double underscore
4:48
рдбрдмрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдХрд┐ рдПрдХ weak internal use indicator рд╣реЛрдЧрд╛ рдпреЗ, рдХрд┐ рдпреЗ private variable рд╣реИ
4:54
рд▓реЗрдХрд┐рди access рдлрд┐рд░ рднреА рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпреЗ рднреА рдмрддрд╛рдУрдВрдЧрд╛ рдереЛрдбрд╝реА рджрд░ рдореЗрдВ рдХреИрд╕реЗ, рд▓реЗрдХрд┐рди рдПрдХ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ indicate рдХрд░ рджрд┐рдпрд╛, рд╣рдордиреЗ рд╕рдВрдХреЗрдж рджрд┐рдпрд╛
4:59
рдЖрдкрдХреЛ рдЬреИрд╕реЗ рд╕рдордЭ рд▓реЛ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреА рдЧрд╛рдбрд╝реА рдЦрдбрд╝реА рдХрд░реА рдмрд┐рдирд╛ рддрд╛рд▓реЗ рдХреЗ рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдиреА рдЧрд╛рдбрд╝реА рдЦрдбрд╝реА рдХрд░реА рдмрд┐рдирд╛ рддрд╛рд▓реЗ рдХреЗ рдФрд░ рдПрдХ рдиреЛрдЯ рд▓рдЧрд╛ рджрд┐рдпрд╛ рдЗрд╕ рдЧрд╛рдбрд╝реА рдХреЛ рдХреЛрдИ рди рдЪреВя┐╜я┐╜
5:05
рд▓реЗрдХрд┐рди рдЪреВрддреЛ рд╕рдХрддрд╛ рд╣реИ рди рдХреЛрдИ рднреА рдЖрдкрдиреЗ note рд▓рдЧрд╛ рджрд┐рдпрд╛ рддреЛ рдЙрд╕рдХреЛ рдХреЛрдИ рдУрдмреЗ рдХрд░реЗ рдирд╛ рдХрд░реЗ рдпреЗ рддреЛ рдЙрд╕рдХреЗ рдКрдкрд░ depend рдХрд░рддрд╛ рд╣я┐╜я┐╜
5:11
рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдЖрдкрд╕реЗ рдХреЛ рдпреЗ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореБрдЭреЗ рдорд╛рд▓реВрдо рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЖрдкрдХреА рдЧрд╛рдбрд╝реА рдХреЛ рдЪреВрдирд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдк note рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реЛ рдареАрдХ рд╣я┐╜я┐╜
5:17
рддреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ note рд▓рдЧрд╛ рджрд┐рдпрд╛ рдпрд╣ double underscore рдХрд░рдХреЗ indication рд▓рдЧрд╛ рджрд┐рдпя┐╜я┐╜
5:20
рдЕрдм рдЖрдк рдХрд╣реЛрдЧреЗ рд▓реЗрдХрд┐рди access рддреЛ рдХрд░ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ access рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ access рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдиреЗ simple рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣я┐╜я┐╜
5:26
рдЖрдкрдиреЗ рдпрд╣рд╛рдБ рдкрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ use рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЛ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпреВрдЬ рдХрд░рдирд╛ рд╣реИ рдЖрдкрдиреЗ рдХреНрд▓рд╛рд╕ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдлрд┐рд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдлрд┐рд░ рдбрдмя┐╜я┐╜
5:35
рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдФрд░ рдЖрдЯреНрд░реЗрдмреНрдпреВрдЯ рдХрд╛ рдирд╛рдо рдареАрдХ рд╣реИ рддреЛ рдореИрдВ рдмрддрд╛рддрд╛ рд╣реВрдВ рдЖрдкрдХреЛ рдХреИрд╕реЗ рдЗрд╕рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдРрд╕реЗ рддреЛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАя┐╜я┐╜
5:39
cannot be accessed directly can be accessed indirectly access Harry print Harry 2 Harry 2 print definitely can be accessed indirectly
6:16
name mangling рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, name mangling рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ, рддреЛ рджреЗрдЦреЛ, name mangling рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдХрд┐ рдЬреЛ рд╣рдорд╛рд░рд╛ directly private attribute рд╣реИ, рдЙрд╕рдХрд╛ рдирд╛рдо рдПрдХ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рдХреЗ рд░рдЦ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдЙрд╕рд╕реЗ рднреА рдмрд╣реБрдд рдЖрдк рд▓реЛрдЧ рдХреЛ рдПрдХ рдмрд╛рдд рдмрддрд╛рддрд╛ рд╣реВрдБ
6:32
рдЕрдЧрд░ рдореИрдВ рдпрд╣рд╛рдВ рдкрд░ рд▓рд┐рдЦреЛ рдПрдбрд╡рд░реНрдЯ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдбреА рдЖрдИ рдЖрд░ рддреЛ рдПрдХ рдКрдкрд░ рдЬреЛ рдЬреЛ рдореИрдердбреНрд╕ рдФрд░ рдЬреЛ рдЬреЛ рд╡реЗрд░рд┐рдмрд▓реНя┐╜я┐╜
6:41
рд░рди рдХреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рдореИрдердб рдореЗрдВ рдЗрд╕рдХреЛ рд░рди рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ рдбреАрдЖрд░ рдореЗрдердб рдХреЛ рдПрдбрд╡рд░реНрдЯ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдбреАрдЖрд░ рдЕрдЧя┐╜я┐╜
6:47
рддреЛ рджреЗрдЦреЛ рдпрд╣ рджреЗрдЦреЛ рдпрд╣рд╛рдБ рдкрд░ рдпрд╣ рдЖ рдЧрдпрд╛ рдореЗрд░рд╛ рдПрдХ attribute рдпрд╣ method рдпрд╣ method рдЬреЛ рдЬреЛ methods
6:53
рдЙрдкрд▓рдмреНрдж рд╣реИ рд╡реЛ рд╕рд╛рд░реЗ рдпрд╣рд╛рдБ рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реЛ рдореБрдЭреЗ рджреЗрдЦрдиреЗ рдХреЛ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╕рд╛рд░реЗ attributes рдФя┐╜я┐╜
6:58
methods рдореБрдЭреЗ рдпрд╣рд╛рдБ рджреЗрдЦрдиреЗ рдХреЛ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕рдореЗрдВ underscore employee underscore underscore name рднреА рд╣реИ рддреЛ рд╣реЛрдЧрд╛ рдХреНрдпя┐╜я┐╜
7:03
рдпрд╛ name mangling рдХрд╛ concept рдЕрдм рд╕рдордЭреЛ, name mangling Python рдореЗрдВ рдПрдХ technique рд╣реЛрддреА рд╣реИ
7:07
which is used to protect, used to protect class private, and subclass private attributes
7:12
from being accidentally overwritten, рдЕрдм рдХреЛрдИ accidentally рдЗрдирдХреЛ override рдХрд░ рд╕рдХрддрд╛ рд╣реИ
7:16
underscore, underscore, underscore name рд╕реЗ access рдХрд░рдХреЗ, рддреЛ рд╡реЛ accidentally override рдирд╛ рдХрд░реЗ
7:20
рдЗрд╕рд▓рд┐рдП name mangling рдХрд░ рджреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ name рд╣реИ, рдЙрд╕рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛ рджрд┐рдпреЗ рдЬрд╛рддрд╛ рд╣реИ
7:24
such that рдЙрд╕рдореЗрдВ class рдХрд╛ рдирд╛рдо underscore рдХреЗ рдмрд╛рдж рдЖрдП рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж underscore underscore рд╡рд╛рд▓рд╛ attribute рдЖя┐╜я┐╜
7:28
рддреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ single leading underscore and double leading underscore рд▓рдЧрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣я┐╜я┐╜
7:34
рдареАрдХ рд╣реИ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЬреЛ рд╣реИ рдЗрд╕рдХреЛ access рдХрд░ рдкрд╛рдУрдЧреЗ indirectly
7:39
рддреЛ рдпреЗ name mangling рдХрд╛ concept рд╣реИ рдЗрд╕ example рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реЛ рдХя┐╜я┐╜
7:42
underscore private underscore attribute рдЬреЛ рд╣реИ рд╡реЛ private by convention mark рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣я┐╜я┐╜
7:47
рдпрд╣рд╛рдБ рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реЛ, рддреЛ рдиреАрдЪреЗ рдореИрдВрдиреЗ рдПрдХ example рджрд┐рдпрд╛ рд╣реБрдЖ, рдЬрд┐рд╕рдХреЛ рдЖрдк рд▓реЛрдЧ definitely run рдХрд░рдХреЗ рджреЗрдЦрдирд╛ рдЦреБрдж рд╕реЗ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдЖрдк рдкрд░ рдЬрд╛рдКрдБрдЧрд╛ protected access modifier рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рджреБрдмрд╛рд░рд╛ рдЖрдк рд▓реЛрдЧ рдХреЛ remind рдХрд░рд╛ рджреВрдБ рдХрд┐ Python рдореЗрдВ public private protected рдХрд╛ рдХреЛрдИ concept рдирд╣реАрдВ рд╣реИ, рдпрд╣ just convention рд╣реИ, рдЬрд┐рд╕рдХреЛ рд▓реЛрдЧ use рдХрд░рддреЗ рд╣реИрдВ as public private protected
8:17
рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЗрдХреНрдЯ рдЗрдЬ рдпреВрдЬ рдбрд┐рд╕реНрдЯрд╛рдЗрдм рдЕрдореЗрдВ рдмрд░рд╛рдлрд░ рдХреНрд▓рд╛рд╕ рдПрдбрд┐рдЯ рдбреЗрдб рдЗрдЬ рдЗрдиреНрдбреЗрдВрдбрд┐рдЯ рдЯреВ рдмя┐╜я┐╜
8:23
рдЕрдкрдиреЗ рдХреНрд▓рд╛рд╕ рдПрдЯреНрд╕ рдПрд▓реНрдм рдПрдВрдб рдЗрдЯ рд╕рдм рдХреНрд▓рд╛рд╕ рдЗрд╕ рдЗрди рдкрд╛рдЗрдЯрди рдж рдХрдиреНрд╡реЗрдВрд╢рди рдлреЙрд░ рдЗрдВрдбрд┐рдХреЗрдЯрд┐рдВрдЧ рджрд╛рдЯ рдЗрд╕ рдмрд╛рдп рдпреВрдЬрд┐рдВя┐╜я┐╜
8:30
рд╕рд┐рдВрдЧрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЖрдк рд▓реЛрдЧ рдЕрдЧрд░ рд╕рд┐рдВрдЧрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдпреВрдЬ рдХрд░рддреЗ рд╣реЛ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдпрд╣ рдирд╛ рдЬреЛ рд╕реНрдЯреВрдбреЗрдВрдЯ рд╡рд╛рд▓реЗ рдПрдЧреНрдЬрд╛рдореНрдкя┐╜я┐╜
8:36
object class fun name function name subject class inherit student object student
8:53
рдФрд░ рдПрдХ рд╣рдордиреЗ рдпрд╣рд╛рдБ рдкрд░ subject рдХрд╛ рдмрдирд╛рдпрд╛ рдареАрдХ рд╣реИ subject рдФрд░ student рджреЛрд░реЛрдВ рдХреЗ рдПрдХ object рдмрдирд╛рдпрд╛ рд╣я┐╜я┐╜
8:58
рддреЛ рдЖрдк рджреЗрдЦреЛ рдпрд╣рд╛рдБ рдкрд░ рдореИрдВ directly рдЗрд╕рдХреЛ access рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ рдореИрдВрдиреЗ obj.underscore name рдХрд┐рдпрд╛ рдЕрдЧя┐╜я┐╜
9:03
рддреЛ рдореИрдВ directly access рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдореИрдВрдиреЗ obj.underscore fun name рдХрд┐рдпрд╛ рддреЛ рдореИрдВ directly access рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВя┐╜я┐╜
9:09
рддреЛ рдкрд╛рдЗрдерди рдХреА рддрд░рдл рд╕реЗ рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рдЗрдерди рдЗрдирдлреЛрд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЗрд╕ рдЪреАрдЬрд╝ рдХя┐╜я┐╜
9:13
рдЗрди рдлрд╛рдХреНрдЯ рдЕрдЧрд░ рдореИрдВ рдпрд╣рд╛рдБ рдкрд░ рдкреНрд░реЗрдВрдЯ рдХрд░реВрдБ DIR of OBJ рдпрд╛ рдлрд┐рд░ рдореИрдВ OBJ.__DIR_
9:19
opening closing parenthesis рднреА рд▓рдЧрд╛ рд╕рдХрддрд╛ рдерд╛ рд╡реЛ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рдкрдбрд╝ рдЬрд╛рддя┐╜я┐╜
9:22
рддреЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкрд░ DIR рдЗрд╕рдХрд╛ print рдХрд┐рдпрд╛ рддреЛ рдЖрдк рд▓реЛрдЧ рдпрд╣рд╛рдБ рдкрд░ рджреЗрдЦреЛ рдЬреЛ OBJ рд╣реИ рд╣рдорд╛рд░рд╛ рдЙрд╕рдореЗрдВ рд╣рдордХреЛ underscore name рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдБ рдпрд╣рд╛рдБ рдкя┐╜я┐╜
9:30
underscore name рдореБрдЭреЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдпрд╛рд░ рдЕрдм рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реВрдБ рдЖрдкрдХреЛ рдореИрдВ рдХрд╣рд╛рдВ рд╣реЛрддреЛ рд╣реВрдБ underscore name рдорд┐рд▓ рдЬрд╛я┐╜я┐╜
9:39
underscore name рдпрд╣рд╛рдБ at the end рддреЛ underscore name рд╣реИ рддреЛ рдпрд╣рд╛рдБ рдкрд░ mangling рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣я┐╜я┐╜
9:44
рддреЛ рдЖрдк рд▓реЛрдЧ directly рдЗрд╕рдХреЛ access рдХрд░ рд╕рдХрддреЗ рд╣реЛ but рдпрд╣ convention рдХреА рддрд░рд╣ use рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣я┐╜я┐╜
9:48
рдХрднреА рдХрднреА conventions рдЬреЛ рд╣реИ рдЕрд▓рдЧ рд▓рдЧ рд▓реЛрдЧ рдЕрд▓рдЧ рд▓рдЧ convention рднреА use рдХрд░рддреЗ рд╣реИя┐╜я┐╜
9:52
рдЬреИрд╕реЗ рдХрд┐ рдорд╛рди рд▓реЛ рдЖрдк рдХрд┐рд╕реА рдПрдХ рдмрдбрд╝реЗ company рдХреЗ рд╕рд╛рде рдПрдХ project рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛ рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ guidelines рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреА рдЬрд╛рдПрдВ рдХрд┐ рдпрд╛я┐╜я┐╜
9:59
рдЬреЛ рд╣рдорд╛рд░рд╛ underscore рд╡рд╛рд▓рд╛ variable рд╣реИ рд╡реЛ рд╣рдо use рдХрд░реЗрдВрдЧреЗ double underscore рд╣рдо use рдирд╣реАрдВ рдХрд░реЗрдВрдЧя┐╜я┐╜
10:04
рд╣рдо mangling рд╡рд╛рд▓рд╛ approach рдпреВрдЬрд╝ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ underscore рд╡рд╛рд▓реЗ variable рдХреЛ рдЖрдкрдХреЛ private treat рдХрд░рдирд╛ рд╣я┐╜я┐╜
10:10
рдпрд╛ рдпреЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдЖрдк рдпреЗ рдордд рдХрд╣рдирд╛ рдХрд┐ рдпрд╛рд░ рд╣реИ рд╣реИ рднрд╛рдИ рдиреЗ рддреЛ рдкреНрд░реЛрдЯреЗрдХреНрдЯ рдмрджрд▓рд╛ рдерд╛ рдЗрдВрдбрд░рд╕реНрдХреЛрд░ рд╡рд╛рд▓рд╛ рдЖрдк рд░рд╛рдпрд░ рдХреА рдмрддрд╛рдпрд╛ рдпрд╣ рдХрдиреНрд╡реЗрдВрд╢рди рдПрдбреЙрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддя┐╜я┐╜
10:19
рд╣реИ рдкрд╛рдЗрдЯрди рдХреБрдЫ рдЗрди рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдкрд╛рдЗрдЯрди рдмрд╕ рдбрдмрд▓ рдЗрдВрдбрд░рд╕реНрдХреЛрд░ рдЬрд╣рд╛рдВ рднреА рд▓рдЧрд╛рдУрдЧреЗ рд╡рд╣ рдореИрдВрдЧрд▓рд┐рдВрдЧ рдХрд░ рджреЗрдЧя┐╜я┐╜
10:23
рдкрд╛рдХрд┐ рдпрд╣рд╛рдБ рдкрд░ underscore рдЖрдк рд▓рдЧрд╛ рд░рд╣реЗ рд╣реЛ directly access рдХрд░реЛ, рдмрд╛рдХрд┐ рдЖрдкрдХреЗ internal
10:27
convention рдХреЗ рдЙрдкрд░ рд╣реИ, рдареАрдХ рд╣реИ, рдпрд╣ just рдПрдХ convention рд╣реИ, double underscore
10:31
рд▓рдЧрд╛рдиреЗ рд╕реЗ mangling рд╣реЛ рдЬрд╛рдПрдЧреА, double underscore рд▓рдЧрд╛ рджреЗ рд░рд╣реЗ рд╣реЛ, directly access рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдареАрдХ рд╣я┐╜я┐╜
10:35
рдЕрдм python рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рджреЗрдЦ рд▓реЛ рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ guidelines and ports рдХрд░ рд▓я┐╜я┐╜
10:39
рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдЬреЛ рдХрд░рдирд╛ рд╣реИ рдХрд░ рд▓реЛ public private protected рдХрд╛ concept python рдореЗрдВ рдмрд╕ рдЗрддрдирд╛ рд╣реА рд╣я┐╜я┐╜
10:44
рдХрд┐ double underscore рд▓рдЧрд╛рдпрд╛ рддреЛ mangling рд╣реЛрдЧреА рдмрд╛рдЧреА рд╕рдм normal рд╣реИ рдПрдХрджрдо normal рд╣реИ рдареАрдХ рд╣я┐╜я┐╜
10:48
рддреЛ рдпрд╣рд╛рдБ рдкрд░ рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдЬреЛ рд▓реЛрдЧ рд╣реИ рд╡реЛ adopt рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЪреАрдЬрд╝реЛрдВ рдХя┐╜я┐╜
10:52
рдпрд╣рд╛рдБ рдкрд░ рджреЗрдЦреЛ it's important to note that the single underscore is just a naming convention
10:57
and does not actually provide any protection or restrict access to the member
11:01
рдЯреАрд╡рд░ рджрд┐рд╕реЗрдВрдЯ рдПрдХреНрд╕реА рдлреЙрд▓реЛрдб рдЯреЛ рдореЗрдХ рд╡рд░рд┐рдПрдмрд▓ рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдЗрд╕ рдЯреЛ рд░рд╛рдЗрдЯ рд╡рд░рд┐рдПрдмрд▓ рдиреЗрдо рдлреЙрд▓реЛрдб рдмрд╛рдИ fatigue рддреАрд╡я┐╜я┐╜
11:07
рдЕрдЧрд░ рд╕рд┐рдВрдЧрд▓ рдЗрдВрдбрд┐рд╕реНрдХреЛрд░ рд▓рдЧрд╛ рджрд┐рдпрд╛ рдбрд┐рд▓реЗрдХреНрдЯрд▓реА рдПрдХреНрд╕реЗрд╕ рдЖрдк рдХрд░ рдкрд╛рдКрдВрдЧреЗ рдЖрдИ рд╣ dual рдХреЛ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдордЬрд╛ рдЖрдпрд╛ рдареАя┐╜я┐╜
11:13
рдЕрдЧрд░ рдЖрдкрдиреЗ playlist рдЕрднреА рддрдХ access рдирд╣реАрдВ рдХрд░реА рддреЛ рдЗрд╕рдХреЛ рдЬрд░реВрд░ рд╕реЗ access рдХрд░реЗрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЗрддрдирд╛ рд╣реИ guys
11:17
thank you so much guys for watching this video and I will see you next time