类,是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。
面向对象程序设计三个基本特征:
1.封装,是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常会对用户隐藏其实现细节,这就是封装思想。
2.继承,是实现重复利用的重要的手段,子类通过继承复用了父类的属性和行为的同时,又添加了子类特有的属性和行为。
3.多态,将父类对象应用于子类的特征就是多态。子类继承父类特征的同时,也具备了自己的特征,且能够实现不同的效果。
魔术方法 __init()__
class People:
'''人类'''
def __init__(self): # 构造方法
print("我是人类!")
Taotao = People()
'''
输出以下内容:
我是人类!
'''
创建实例方法并访问
class People:
'''人类'''
def __init__(self): # 构造方法
print("我是人类!")
def Run(self, count):
print("我能跳", count, "次")
Taotao = People() # 创建实例
Taotao.Run(10)
'''
输出以下内容:
我是人类!
我能跳 10 次
'''
创建数据成员并访问
'''
创建数据成员并访问 类属性
Created by Taotao on 20200626
'''
class People:
'''人类'''
height = "10m"
def __init__(self): # 构造方法
print("我是人类!")
def Run(self, count):
print("我能跳", count, "次")
Taotao = People() # 创建实例
Taotao.Run(10)
print(People.height)
print(Taotao.height)
'''
输出以下内容:
我是人类!
我能跳 10 次
10m
10m
'''
'''
创建数据成员并访问 实例属性
Created by Taotao on 20200626
'''
class People:
'''人类'''
height = "10m"
def __init__(self): # 构造方法
self.sing = "我会唱歌!" #定义实例属性
print("我是人类!")
def Run(self, count):
print("我能跳", count, "次")
Taotao = People() # 创建实例
Taotao.Run(10)
print(People.height)
print(Taotao.height)
print(Taotao.sing) # 实例属性只能通过实例名字访问
'''
输出以下内容:
我是人类!
我能跳 10 次
10m
10m
我会唱歌!
'''
访问限制
1.__too__:收尾双下划线表示定义特殊方法,一般是系统定义名字,如__init__();
2._too:以单下划线开头的表示protected(保护)类型的成员,只允许类本身和子类进行访问,但不能使用“from module import *”语句导入;
3.__foo:双下划线表示private(私有)类型的成员,只允许定义该方法的类本身进行访问,而且也不能通过类的实例进行访问,但是可以通过“类的实例名.类名__xxx”方式访问。
'''
类成员(属性或方法)访问限制
Created by Taotao on 20200626
'''
class People:
'''人类'''
_height = "10m" #定义私有属性 单引号 protected
def __init__(self): # 构造方法
print("我的身高是:", People._height)
def _Run(self, counts): # 定义私有属性 单引号 protected
print("我能跳", counts, "次")
Taotao = People() # 创建实例
print("属性直接访问", Taotao._height) # 保护属性可以通过实例名访问
print("方法直接访问", Taotao._Run(10)) # 保护方法可以通过实例名访问
'''
输出以下内容:
我的身高是: 10m
属性直接访问 10m
我能跳 10 次
方法直接访问 None
'''
'''
类成员(属性或方法)访问限制
Created by Taotao on 20200626
'''
class People:
'''人类'''
__height = "10m" #定义私有属性 双引号 私有 private
def __init__(self): # 构造方法
print("我的身高是:", People.__height)
def __Run(self, counts): # 定义私有属性 双引号 私有private
print("我能跳", counts, "次")
Taotao = People() # 创建实例
print("属性直接访问", Taotao._People__height) # 私有属性可以通过“实例名._类名__xxx”访问
print("方法直接访问", Taotao._People__Run(10)) # 私有方法可以通过“实例名._方法名__xxx”访问
'''
输出以下内容:
我的身高是: 10m
属性直接访问 10m
我能跳 10 次
方法直接访问 None
'''