定义类
基本概念
语法
class ClassName:"类的帮助信息" #类文档字符串6statement #类体
参数说明
ClassName表示的就是类名。"类的帮助信息"可以当做这个类的注释来看。statement里面就是定义方法和属性。
例子
class Geese:"大雁类"pass
这里的
pass表示占位符号,不做任何作用。
创建类的实例
语法
x = ClassName(parameterlist)# 括号里面的是参数
例子
wildGoose = Geese() # 创建大雁类的实例
初始化方法
init()方法
在Python中,__init__()方法类似于java中的构造方法,在实例被创建的时候自动执行。
其他方法一般情况下都不能自动执行。__init__()方法 必须包含一个self参数,并且这个参数必须是参数列表parameterlist中的第一个参数,创建实例的时候会总执行里面的代码。self是一个指向实例本身的一个参数,用于方法实例本身的属性和方法。
只有在
__init__()方法在没有其他参数的时候,parameterlist可以省略不写。
例子
class Geese:"大雁类"def __init__(self):print("我是大雁类")wildGoose = Geese()
注意这里定义方法的时候需要使用
def关键词 注意代码之间的缩进self参数不可少__init__()的下划线是两个。
运行结果如下:
增加参数:
class Geese:"大雁类"def __init__(self,name):print("我是" + name)wildGoose = Geese("大雁类")
运行结果同上。
创建类成员并访问
创建方法并访问
直接看实例:
class Geese:"大雁类"def __init__(self):print("我是大雁类")def fly(self,state):print(state)wildGoose = Geese()wildGoose.fly("大雁会飞")
运行结果如下
创建数据成员并访问
同样也是直接看实例即可
class Geese:"大雁类"wing = "这是大雁的翅膀"def __init__(self):print("我是大雁类")wildGoose = Geese()print(wildGoose.wing)
运行结果如下
访问限制
_name单下划线开头的表示
protect类型的成员。 只能由本类及其子类才能访问。
例子:
class Geese:"大雁类"_wing = "这是大雁的翅膀"def __init__(self):print("我是大雁类")wildGoose = Geese()print(wildGoose._wing)
__name双下划线开头的表示
private类型的成员。 只能由本类才能访问,其中属性不能直接访问,但是可以通过类的实例名._类名__x进行访问。
class Geese:"大雁类"__wing = "这是大雁的翅膀"def __init__(self):print("我是大雁类")wildGoose = Geese()# 通过类访问print(wildGoose._Geese__wing)# 直接访问print(wildGoose.__wing)

可以看到直接访问就会报错。
__name__首尾双下划线表示是特殊方法,一般是系统自定义的名字,了解即可。
继承
基本概念
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
语法
class ClassName(baseclasslist)"类的帮助信息"Statement
参数说明
ClassName类名baseclasslist需要继承的类。Statement类的主体(包括方法和属性等)例子
```python class Animial: “动物类” str = “这是父类动物类”
class Geese(Animial):
“大雁类”
def init(self):
print(“我是大雁类”)
wildGoose = Geese()
print(wildGoose.str) #调用父类属性
```

