定义类

基本概念

语法

  1. class ClassName:
  2. "类的帮助信息" #类文档字符串6
  3. statement #类体

参数说明

  1. ClassName表示的就是类名。
  2. "类的帮助信息"可以当做这个类的注释来看。
  3. statement里面就是定义方法和属性

例子

  1. class Geese:
  2. "大雁类"
  3. pass

这里的pass表示占位符号,不做任何作用。

创建类的实例

语法

  1. x = ClassName(parameterlist)
  2. # 括号里面的是参数

例子

  1. wildGoose = Geese() # 创建大雁类的实例

初始化方法

init()方法

在Python中,__init__()方法类似于java中的构造方法,在实例被创建的时候自动执行。
其他方法一般情况下都不能自动执行
__init__()方法 必须包含一个self参数,并且这个参数必须是参数列表parameterlist中的第一个参数,创建实例的时候会总执行里面的代码
self是一个指向实例本身的一个参数,用于方法实例本身的属性和方法

只有在__init__()方法在没有其他参数的时候,parameterlist可以省略不写。

例子

  1. class Geese:
  2. "大雁类"
  3. def __init__(self):
  4. print("我是大雁类")
  5. wildGoose = Geese()

注意这里定义方法的时候需要使用def关键词 注意代码之间的缩进 self参数不可少 __init__()的下划线是两个。

运行结果如下:
image.png
增加参数:

  1. class Geese:
  2. "大雁类"
  3. def __init__(self,name):
  4. print("我是" + name)
  5. wildGoose = Geese("大雁类")

运行结果同上。

创建类成员并访问

创建方法并访问

直接看实例:

  1. class Geese:
  2. "大雁类"
  3. def __init__(self):
  4. print("我是大雁类")
  5. def fly(self,state):
  6. print(state)
  7. wildGoose = Geese()
  8. wildGoose.fly("大雁会飞")

运行结果如下
image.png

创建数据成员并访问

同样也是直接看实例即可

  1. class Geese:
  2. "大雁类"
  3. wing = "这是大雁的翅膀"
  4. def __init__(self):
  5. print("我是大雁类")
  6. wildGoose = Geese()
  7. print(wildGoose.wing)

运行结果如下
image.png

访问限制

  1. _name

    单下划线开头的表示protect类型的成员。 只能由本类及其子类才能访问。

例子:

  1. class Geese:
  2. "大雁类"
  3. _wing = "这是大雁的翅膀"
  4. def __init__(self):
  5. print("我是大雁类")
  6. wildGoose = Geese()
  7. print(wildGoose._wing)
  1. __name

    双下划线开头的表示private类型的成员。 只能由本类才能访问,其中属性不能直接访问,但是可以通过类的实例名._类名__x进行访问。

  1. class Geese:
  2. "大雁类"
  3. __wing = "这是大雁的翅膀"
  4. def __init__(self):
  5. print("我是大雁类")
  6. wildGoose = Geese()
  7. # 通过类访问
  8. print(wildGoose._Geese__wing)
  9. # 直接访问
  10. print(wildGoose.__wing)

image.png

可以看到直接访问就会报错。

  1. __name__

    首尾双下划线表示是特殊方法,一般是系统自定义的名字,了解即可。


继承

基本概念

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
通过继承创建的新类称为子类派生类,被继承的类称为基类父类超类

语法

  1. class ClassName(baseclasslist)
  2. "类的帮助信息"
  3. Statement

参数说明

  1. ClassName类名
  2. baseclasslist需要继承的类
  3. Statement类的主体(包括方法和属性等)

    例子

    ```python class Animial: “动物类” str = “这是父类动物类”

class Geese(Animial): “大雁类” def init(self): print(“我是大雁类”) wildGoose = Geese() print(wildGoose.str) #调用父类属性 ``` image.png