+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-07(1)

2019-08(109)

2019-09(120)

2019-10(17)

2019-11(1)

python面向对象编程快速理解!!!

发布于2020-09-29 20:36     阅读(488)     评论(0)     点赞(23)     收藏(4)


0

1

2

3

4

5

6

7

 

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。

开始:

创建一个类:

  1. class Student():
  2. # Student类的属性
  3. name = "lin"
  4. # student类的方法
  5. def say(self):
  6. print("My name is ", self.name)

实例化类:

  1. a = Student()
  2. print(a.name) 访问类的属性
  3. a.say() 调用类的方法
  4. 输出:
  5. lin
  6. My name is lin

几个特殊用法:

  1. class Student():
  2. name = "lin"
  3. age = 18
  4. def say(self):
  5. self.age = 20
  6. print("class sya:", self.name, self.age) # 访问self修改后中的属性
  7. print("class sya:", self.name, __class__.age) # __class__访问类中的属性
  8. print("class sya:", self.name, Student.age) # 访问类中的属性
  9. 实例化后输出:
  10. class sya: lin 20
  11. class sya: lin 18
  12. class sya: lin 18

共有私有:

私有: __name, 不是真私有,而是一种改名策略,可以通过 _Student__age 访问
保护:_age, 子类可以用,但不能公用

  1. class School():
  2. name = "lin"
  3. __age = 18
  4. a = School()
  5. print(a.name)
  6. print(a._School__age)
  7. # print(a.__age) # 直接访问私有数据,会报错!
  8. 输出:
  9. lin
  10. 18

继承:

  1. class Person():
  2. name = "lin"
  3. __age = 0
  4. _num = 1
  5. def sleep(self):
  6. print("sleeping.......")
  7. class Teacher(Person):
  8. id = "1234"
  9. def work(self):
  10. Person.sleep(self) # 对父类中的方法进行扩展
  11. super().sleep() # 同上
  12. print("make a money......")
  13. aaa = Teacher()
  14. print(aaa.name, aaa._num, aaa.id)
  15. aaa.work()
  16. 输出:
  17. lin 1 1234
  18. sleeping.......
  19. sleeping.......
  20. make a money......

魔法函数:

__init__示例:

  1. class User():
  2. def __init__(self, pk):
  3. print("User ......", pk)
  4. class Sensor(User):
  5. name = "lin"
  6. # 子类中有构造函数,优先执行子类
  7. # def __init__(self):
  8. # print("sensor ......")
  9. s = Sensor(123)
  10. 输出:
  11. User ...... 123

多态:

参考:https://www.cnblogs.com/luchuangao/p/6739557.html

混合Mixin:

Mixin和多继承的区别:

Mixin是功能的增加,而不改变物种

多继承不仅增加功能,也改变其物种(多物种)一般是不建议使用多继承的,会导致关系混乱!

原文链接:https://blog.csdn.net/qq_41590764/article/details/106913470

0

1

2

3

4

5

6

7



所属网站分类: 技术文章 > 博客

作者:你太美丽

链接: https://www.pythonheidong.com/blog/article/553696/4c93351c155e2fa1ad8b/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)