• python的类和对象


    python是面向对象的程序设计语言。其中有一些基本的概念,比方类、属性、方法。

    对象:研究的事物

    属性:数据元素

    方法:操作

    类:具有共同本质特性的事物

    实例:类所定义的对象的具体体现

    实例化:类定义的基础上构造对象(实例)的过程


    以汽车为例:

    类名:Car

    属性:汽车型号、车牌等

    方法:前进、后退等


    1. 类的定义

    class类名:
    [类变量名= 初始值]                     #定义一个类对象
    [def 方法名(self,参数):        #定义类变量(属性)
    方法体]                       #定义类方法

    说明:
    (1)class后面接的是一个类名,随后定义类的类体代码
    (2)类属性用类中的数据成员(变量)来描述
    (3)类中的方法类似函数,但是第一个参数一般为self,它在所有方法声明中都存在,代表实例(对象)本身,当用实例调用方法时,不需要将self传递进来
    (4)具体对象通过类的实例化获得,格式为:
    对象 = 类名([参数])
    对象创建后,可以获得属性,格式为:对象.属性名,并可以调用方法,格式为:对象.方法名([参数])

    example 1:
    class Dog:                                                         #定义Dog类
    	def bark(self):                                           #定义方法bark()
    	print("汪!汪!")          
    dog1 = Dog()                                                       #创建对象dog1
    dog1.bark()                                                        #对象dog1调用方法bark()
    运行结果:
    汪!汪!




    example 2:    
    class Dog:                                       #定义Dog类
        def bark(self,xm):                              #定义方法bark()
            self.name = xm                             #将xm(姓名)赋值给对象属性name
            print("汪!汪!我是" + self.name + "!")              
    dog1 = Dog()                                      #创建对象dog1
    dog1.bark("阿黄")                                  #对象dog1调用方法bark()
    
    运行结果:
    汪!汪!汪!我是阿黄!

    2. 类的方法

    __init__()用于对象的初始化,该方法在类被实例化时立即执行

    example 3:
    class Dog:
    
    	def __init__(self,name,color):
    		self.name = name
    		self.color = color
    	def bark(self):
    	print("汪!汪!我是" + self.name + "!")
    dog1 = Dog("阿黄", "黄色")
    print("刚才创建了一个狗的对象,该条狗的名字叫: "dog1.name + "颜色为: "+dog1.color)
    dog1.bark()
    运行结果:
    刚才创建了一个狗的对象,该条狗的名字叫:阿黄  颜色为:黄色
    汪!汪!我是阿黄!

    3. 类变量和对象(实例)变量

    python面向对象语言中,有两种变量类型——类变量和对象(实例)变量,它们根据所有者是类还是对象而区分开来。类对象可以共享——可以被实例使用,而实例的变量只能被自己的对象所拥有。

    example4:
    class Dog:
        number = 0
        def __init__(self,name):
            self.name = name
            Dog.number = Dog.number + 1
        def bark(self):
            print("汪!汪!我是"+ self.name + "!")
            print("现在有 %d 条狗!" % Dog.number)
    dog1 = Dog("阿黄")
    dog1.bark()
    dog2 = Dog("阿美")
    dog2.bark()
    dog1.bark()
    
    运行结果:
    汪!汪!我是阿黄!
    现在有 1 条狗!
    汪!汪!我是阿美!
    现在有 2 条狗!
    汪!汪!我是阿黄!
    现在有 2 条狗!
    对象dog1的实例变量name为dog1自己所有,初始化后name的值为“阿黄”,和对象dog2的实例变量不相关,而类变量number为dog1和dog2所共有。




  • 相关阅读:
    Qt5.3.0 for android windows平台下搭建及demo(虫子的博客)
    不分享,用户很少,什么都没有,没有秒传
    Entity Framework 5.0系列之约定配置
    学习SQL关联查询
    SQL语句调优
    数组总结篇(上)
    实现同一套代码针对不同平台工程的编辑和编译
    dispatch队列
    SOCKET网络编程快速上手(一)
    Javascript判断两个日期是否相等
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411655.html
Copyright © 2020-2023  润新知