Chinaunix首页 | 论坛 | 博客
  • 博客访问: 235686
  • 博文数量: 57
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 557
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-01 18:05
文章分类

全部博文(57)

文章存档

2017年(57)

我的朋友

分类: Python/Ruby

2017-11-06 23:50:22

本文主要介绍了Python类定义和类继承及类的私有属性、类的方法
1.类的定义

点击(此处)折叠或打开

  1. class<类名>
  2.     <语句>
类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性
如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象

类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
实例如下:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-11-06 17:17
  5. # @file :class2.py


  6. #类定义
  7. class people:
  8.     name = ''
  9.     age = 0
  10.     _weight = 0
  11.     def __init__(self,n,a,w):
  12.         self.name = n
  13.         self.age =a
  14.         self._weight =w
  15.     def speak(self):
  16.         print ("%s is speaking: I am %d years old" %(self.name,self.age))


  17. p = people('tom',10,30)
  18. p.speak()
运行结果:
tom is speaking: I am 10 years old
2.类的继承
2.1 单继承

点击(此处)折叠或打开

  1. class <类名>(父类名)
  2.     <语句>

  3. eg.
  4. class childbook(book)
  5.     age = 10
2.2 多重继承

点击(此处)折叠或打开

  1. class 类名(父类1,父类2,....,父类n)
  2.     <语句1>
需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索,即方法在子类中未找到时,从左到右查找父类中是否包含方法

实例如下:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.Xie
  4. # @Time :2017/11/6 22:41
  5. # @File :class1.py


  6. # 类定义
  7. class People:
  8.     name = ''
  9.     age = 0
  10.     _weight = 0
  11.     _grade = 0

  12.     def __init__(self, n, a, w, g):
  13.         self.name = n
  14.         self.age = a
  15.         self._weight = w
  16.         self._grade = g

  17.     def speak(self):
  18.         print ("%s is speaking: I am %d years old" % (self.name, self.age))


  19. p = People('tom', 10, 30, 1)
  20. p.speak()


  21. class Speaker():
  22.     topic = ''
  23.     name = ''

  24.     def __init__(self, n, t):
  25.         self.name = n
  26.         self.topic = t

  27.     def speak(self):
  28.         print ("I am %s,I am a speaker!My topic is %s" % (self.name, self.topic))


  29. test = Speaker('Tim', 'Python')
  30. test.speak()


  31. # 多重继承
  32. class Sample(Speaker, People):
  33.     a = ''
  34.     # _grade = 4

  35.     def __init__(self, n, a, w, g, t):
  36.         People.__init__(self, n, a, w, g)
  37.         Speaker.__init__(self, n, t)
  38.         print ("I am %s,I am %d years old,and I am %d, I am in grade %d and my topic is %s" % (self.name, self.age, self._weight, self._grade, self.topic))


  39. test = Sample('Ken', 25, 80, 4, 'python')
执行结果:
tom is speaking: I am 10 years old
I am Tim,I am a speaker!My topic is Python
I am Ken,I am 25 years old,and I am 80, I am in grade 4 and my topic is python


阅读(1040) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~