zoukankan      html  css  js  c++  java
  • 1.类

    什么是类

    类是一系列对象相似的特征与技能的结合体

    • 在现实世界中:肯定是先有对象,再有类
    世界上肯定是先出现各种各样的实际存在的物体,然后随着人类文明的发展,人类站在不同的角度总结出了不同的种类,比如
    人类、动物类、植物类等概念。也就说,对象是具体的存在,而类仅仅只是一个概念,并不真实存在,比如你无法告诉我人类
    具体指的是哪一个人。
    • 在程序中:务必保证先定义类,后产生对象
    这与函数的使用是类似的:先定义函数,后调用函数,类也是一样的:在程序中需要先定义类,后调用类。不一样的是:调用
    函数会执行函数体代码返回的是函数体执行的结果,而调用类会产生对象,返回的是对象

    定义类
    • 在程序中,务必保证:先定义(类),后使用类(用来产生对象)
    在Python中程序中的类用class关键字定义,而在程序中特征用变量标识,技能用函数标识,因而类中最常见的无非是:变量和函数的定义
    class OldboyStudent: school='oldboy' def learn(self): print('is learning') def eat(self): print('is eating') def sleep(self): print('is sleeping')

    注意:

    • 类中可以有任意python代码,这些代码在类定义阶段便会执行,因而会产生新的名称空间,用来存放类的变量名与函数名,可以通过OldboyStudent.__dict__查看
    • 类中定义的名字,都是类的属性,点是访问属性的语法。
    • 对于经典类来说我们可以通过该字典操作类名称空间的名字,但新式类有限制(新式类与经典类的区别我们将在后续章节介绍)

    类的使用

    • 引用类的属性
    • print(OldboyStudent.school)        #查
      OldboyStudent.school='luffycity' #改
      OldboyStudent.sex='male' #增
      del OldboyStudent.sex #删
    • 调用类,或称为实例化,得到程序中的对象
    • s1=OldboyStudent()
      s2=OldboyStudent()
      s3=OldboyStudent()

    上面就是将类进行了3个实例化

    当然实际生产中,类还有其他各种不同属性,这就用到了__init__方法。

    • __init__方法
    class OldboyStudent:
        ......
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
        ......
    
    s1=OldboyStudent('李坦克','男',18) #先调用类产生空对象s1,然后调用OldboyStudent.__init__(s1,'李坦克','男',18)
    s2=OldboyStudent('王大炮','女',38)
    s3=OldboyStudent('牛榴弹','男',78)

    对象的使用

    执行__init__  , s1.name=李坦克   ,也会产生名称空间

    s1.__dict__查看为   {'name': '李坦克', 'age': '男', 'sex': 18}

    从名称空间增删改查

    s2.name #查,等同于s2.__dict__['name']
    s2.name='王三炮' #改,等同于s2.__dict__['name']='王三炮'
    s2.course='python' #增,等同于s2.__dict__['course']='python'
    del s2.course #删,等同于s2.__dict__.pop('course')

     

  • 相关阅读:
    WinForm 下的 Wizard(向导) 控件, 提供设计时支持!
    关于安装VS2005或MSDN时遇到“Please insert the disk:XXXXXXX” 错误提示的解决方法!
    Welcome
    Latex 入门教程
    图形学 旋转与投影矩阵3
    图形学 旋转与投影矩阵—2
    算法希尔排序可视化
    图形学 旋转与投影矩阵—1
    BlinnPhong反射模型实践(web实现)
    贝塞尔曲线(面)二三维可视化(Three+d3)
  • 原文地址:https://www.cnblogs.com/sunny666/p/9674641.html
Copyright © 2011-2022 走看看