定义类
基本概念
语法
class ClassName:
"类的帮助信息" #类文档字符串6
statement #类体
参数说明
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) #调用父类属性 ```