Python中用类实现对象和封装

"""
    用类实现对象和封装
对象:对应客观世界的事物,将描述事物的一组数据和与这组数据有关的操作封装在一起,
形成一个实体,这个实体就是对象
类:具有相同或相似性质的对象的抽象就是类
forexample:汽车是一个类,则具体一辆汽车就是一个对象
面向对象编程的特点:
    1.封装性
        封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节
不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部
实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细
节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为
不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。类通
过将函数和变量封装在内部,实现了比函数更高一级的封装。
    2.继承性
        继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个
孩子都会继承父亲或者母亲的某些特征,当然这只是最基本的继承关系,现实世界中还存在
着更复杂的继承。继承机制实现了代码的复用,多个类公用的代码部分可以只在一个类中提
供,而其他类只需要继承这个类即可。
    3.多态性
        多态通常是指类中的方法重载,即一个类中有多个同名(不同参数)的方法,方法
调用时,根据不同的参数选择执行不同的方法。
"""
# 创建类
"""
  对象是类的一个实例,要想创建一个对象,先要定义一个类。在Python中,可使用class关键字来声明一个类,其语法格式如下:
    class 类名:
      类的属性(成员变量)
      ...
      类的方法(成员方法)
      ...
  类由三部分组成:
    1.类名:类的名称,通常他的首字母大写。
    2.属性:用于描述事物的特征,如人的姓名、年龄等。
    3.方法:用于描述事物的行为,如人具有说话、微笑等行为。
"""
class Dog:
"""
使用关键字class定义一个名称为Dog的类,类中有一个名字叫enjoy()的成员方法。从示例中可以看出,
方法跟函数的格式是不一样的,主要区别在于成员方法必须显式的声明一个self函数,而且位于参数列表的开头。
self代表对象本身,可以用来引用对象的属性和方法。
"""
  num=0
  def __init__(self,id=0,color="yellow"): # 构造方法
    self.id=id
    seif.color=color
  def enjoy(self):
    print("wangwang")
dog=Dog()
dog.enjoy()


# 创建对象
"""
程序想要实现具体的功能,仅有类是远远不够的,还要根据类来创建对象。在Python中,可以使用如下方法来创建一个对象。
  对象名=类名()
为对象添加属性,可以使用如下方法。
  对象名.属性名=值
  
"""
dog=Dog() # dog实际是一个变量,可以使用它类的属性和方法
dog.weight=52



#
多态性 class Animal: def kind(self): print("i am animal") class Dog(Animal): def kind(self): print("i am a dog") class Cat(Animal): def kind(self): print("i am a cat") class Pig(Animal): def kind(self): print("i am a pig") # 这个函数接收一个animal参数,并调用它的kind方法 def show_kind(animal): animal.kind() """ 狗、猫、猪都继承了动物类,并各自重写了kind方法。show_kind()函数接收一个animal参 数,并调用它的kind方法。可以看出,无论我们给animal传递的是狗、猫还是猪,都能正确 的调用相应的方法,打印对应的信息。这就是多态。 """ d = Dog() c = Cat() p = Pig() show_kind(d) show_kind(c) show_kind(p) # 创建类与对象 """ class 类名: 类的属性(成员变量) ... 类的方法(成员方法) ... 类名:类的名称,通常他的首字母大写 属性:用于描述事物的特征,如人的姓名、年龄等 方法:用于描述事物的行为,如人具有说话、微笑等行为 """ class Dog: num = 0 # 类变量 def __init__(self, id=0, color="yellow"): # 构造方法 self.id = id self.color = color def enjoy(self): # 成员方法 print("wangwang") def show(self, weight): print("重量{}公斤".format(weight)) print("id:{},颜色:{}".format(self.id, self.color)) dog1 = Dog(color="grey") # 构造dog1对象 dog1.weight = 52 # 为类添加属性 dog1.show(dog1.weight) dog1.enjoy() dog2 = Dog("101", "black") dog2.weight = 55 dog2.show(dog2.weight) # 构造方法和析构方法 """ Python的类提供了两个比较特殊的方法:__init__()和__del__(),分别用于初始化对象的 属性和释放对象所占用的资源 """ class Dog: def __init__(self): # 构造方法 self.color = "black" def show(self): print("id:{},颜色:{}".format(self.id, self.color)) def __del__(self): print("对象被清除") dog = Dog() dog.id = 1 dog.show() del dog # 删除dog对象

 

posted @ 2021-03-14 16:36  呆贝斯  阅读(429)  评论(0编辑  收藏  举报