精华内容
下载资源
问答
  • Python 类的定义与使用

    千次阅读 2019-09-05 14:32:44
    2019-9-5Python面向对象 类:描述具有相同属性和方法的对象的集合 类变量:在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,类变量通常不作为实例变量...实例变量:在类的声明中,属性是用变量来...

    2019-9-6Python类的定义与使用

    • 类:描述具有相同属性和方法的对象的集合
    • 类变量:在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,类变量通常不作为实例变量使用
    • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的
    • 覆盖(override),也称为方法的重写
    • 局部变量:定义在方法中的变量,只作用于当前实例的类
    • 实例变量:在类的声明中,属性是用变量来表示的,是在类声明的内部但是在类的其他成员方法之外声明的
    • 继承:即一个派生类继承基类的字段和方法
    • 实例化:创建一个类的实例,类的具体对象
    • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法

    1、类的定义
    语法:

    class <类名称>:
      ["文件字符串"] #类文档字符串
    <语句> #类体,由类成员、方法、数据属性组成
    
    class Car(object):  #定义一个类,派生自object类
      def infor(self): #定义成员方法
          print("This is a car")
    

    2、构造方法

    • 类的构造方法或初始化方法,当创建了这个类的实例时就会调用该方法
    • 实例化对象时时可以传入参数的,这些参数会自动传入_ init _()方法中,可以通过重写这个方法来定义对象的初始化操作
    • 定义构造方法时,self是必要的参数且为第一个参数
    • 若在Python中定义类时没有定义_init_()方法,则在实例化时系统会自动调用默认的构造方法(无参的_init_()方法)
    • 一个类中可以定义多个构造方法,但是实例化类时只会实例化最后的构造方法,即后面的构造方法会覆盖前面的构造方法,并且需要根据最后一个构造方法的形式进行实例化(参数与最后一个构造方法的参数一致),因此一个类中最好只定义一个构造方法
    • 初始化实例包括:定义和初始化实例属性或调用类的一些方法
      语法:
    def_init_(self):
      <语句>
    
    class Myclass:
       i=612
       def __init__(self,you):
          self.you=you
       def func(self,me):
          self.me=me
          return self.me+" like "+self.you
    user=Myclass("lion") 
    print("调用类的属性:",user.i) 
    print("调用类的方法:",user.func("monkey"))
    

    调用类的属性:612
    调用类的方法:monkey like lion

    分析这段代码,一开始看着有点打脑壳,跟Java面向对象类的定义存在很多不一样。在定义类中函数时,通常需要将函数的第一个参数定义成self,而self指向对象本身。下面一个例子

    class Breakfast:
      def set_name(self,name):
        self.name=name
      def get_name(self):
        return self.name
    a=Breakfast()
    b=Breakfast()
    a.set_name("milk")
    b.set_name("bread")
    print(a.get_name())
    print(b.get_name())
    

    milk
    bread

    对象a,b在分别调用set_name()和get_name()方法时,self分别指向了a,b,即对象自身。

    3、内置类属性
    ①_dict_:类的属性(包含一个字典,由类的数据属性组成)
    ②_doc_:类的文档字符串
    ③_name_:类名
    ④_module_:类定义所在的模块(类的全名称是’_ main _.className’,如果类位于一个导入模块mymod中,那么className._module _等于mymod)
    ⑤_bases _:类的所有父类构成元素(包含了由父类组成的元组)

    4、类的实例
    ①创建类实例

    car = Car() #实例化对象
    car.infor() #调用对象的成员方法
    //这里输出:This is a car
    

    ②内置函数isinstance()
    作用:测试一个对象是否为某个类的实例

    >>>isinstance(car,Car)
    True
    

    ③内置函数type()
    作用:查看对象类型

    >>>type(car)
    <class'_ _main_ _.Car'>
    
    展开全文
  • python 类的定义与使用

    千次阅读 2019-12-01 21:31:52
    class 关键字之后是一个空格,接下来是类的名称 类名的首字母一般要大写 # 定义一个关于车的类 class Car(object): def info(self): print("this is a car") 如何实例化对象? 使用=号实例化对象 通过 对象...

    类如何定义?

    • 使用class关键字进行定义
    • class 关键字之后是一个空格,接下来是类的名称
    • 类名的首字母一般要大写
    # 定义一个关于车的类
    class Car(object):
        def info(self):
            print("this is a car")
    

    如何实例化对象?

    • 使用=号实例化对象
    • 通过 对象名.成员 的方式访问其中的成员数据或成员方法
    # 实例化对象
    car = Car()
    
    # 调用对象方法
    car.info()
    
    

    运行结果

    this is a car
    

    如何测试一个对象是否属于某个类的实例

    # 测试car对象是否属于Car类的实例
    print(isinstance(car,Car))
    

    运行结果

    True
    

    pass是什么?

    • pass关键字表示是一个空语句
    • pass关键字的作用是用来占位,使程序正常运行
    # 定义一个关于车的类
    class Car(object):
        def info(self):
            print("this is a car")
    
    class Fly(object):
        pass
    
    # 实例化对象
    car = Car()
    
    # 调用对象方法
    car.info()
    

    运行结果

    this is a car
    
    展开全文
  • Python类的定义与使用

    2020-05-17 20:30:39
    目录定义类的实例化自定义遥感影像属性的类 定义类 #类(Class) 由3个部分构成: ''' 类的名称:类名 类的属性:指对象的特征(一组数据) 类的方法:允许对象进行操作的方法 (行为/功能) ''' class people: def __...

    定义类

    #类(Class) 由3个部分构成:
    '''
    类的名称:类名
    类的属性:指对象的特征(一组数据)
    类的方法:允许对象进行操作的方法 (行为/功能)
    '''
    
    class people:
        def __init__(self, name, age):
            self.name = name
            self.age = age
        def information(self):
            print('name is {}'.format(self.name))
            print('age is {} '.format(self.age))
    

    在python3.x中所有的类都继承了object,拥有更多操作方法,无需定义成class people(object):
    self代表类的实例本身.
    __init__的方法在实例化类时将自动执行.

    类的实例化

    类的实例化即引用定义的类。

    someone = people('xiaoming', 10)
    

    查看类的属性

    someone.name
    'xiaoming'
    someone.age
    10
    

    调用类中的方法

    someone.information()
    
    name is xiaoming
    age is 10 
    

    自定义遥感影像属性的类

    代码来自 http://gaohr.win/site/blogs/2017/2017-04-14-tvdi.html

    from osgeo import gdal,osr
    class Raster:
        def __init__(self, nRows, nCols, data, noDataValue=None, geotransform=None, srs=None):
            self.nRows = nRows
            self.nCols = nCols
            self.data = data
            self.noDataValue = noDataValue
            self.geotrans = geotransform
            self.srs = srs
     
            self.dx = geotransform[1]
            self.xMin = geotransform[0]
            self.xMax = geotransform[0] + nCols * geotransform[1]
            self.yMax = geotransform[3]
            self.yMin = geotransform[3] + nRows * geotransform[5]
     
    def ReadRaster(rasterFile):
        ds = gdal.Open(rasterFile)
        band = ds.GetRasterBand(1)
        data = band.ReadAsArray()
        xsize = band.XSize
        ysize = band.YSize
        noDataValue = band.GetNoDataValue()
        geotrans = ds.GetGeoTransform()
     
        srs = osr.SpatialReference()
        srs.ImportFromWkt(ds.GetProjection())
        if noDataValue is None:
            noDataValue = -9999
        return Raster(ysize, xsize, data, noDataValue, geotrans, srs)
    

    可以看出代码中自定义了一个Raster的类,该类中包含了影像行列号,仿射变换参数等属性。
    定义这个类的优势在于可以使代码变得简洁,易懂。
    在这里实例化Raster的方法是在自定义读取数据函数中返回这个类。

    raster = ReadRaster('F:\GDAL learning\Landsat8.tif') #实例化Raster类
    

    除了在类中自定义一个函数来print属性来查看影像属性外,还可以在类Raster中添加__str__方法查看影像属性。

        def __str__(self):  
            return "影像行数:%s 影像列数:%d" % (self.nRows, self.nCols)
    
    print(raster)
    影像行数:8900 影像列数:8563
    
    展开全文
  • python类的定义与使用

    2020-07-03 15:01:36
    class Ticket(): #类的名称首字母大写 #在类里定义的变量称为属性 def __init__(self,checi,fstation,tstation,fdate,ftime,ttime): self.checi=checi self.fstation=fstation self.tstation=tstation self...

    class01.py 代码如下

    class Ticket():   #类的名称首字母大写
        
        #在类里定义的变量称为属性,第一个属性必须是self
        def __init__(self,checi,fstation,tstation,fdate,ftime,ttime,notes): 
            self.checi=checi
            self.fstation=fstation
            self.tstation=tstation
            self.fdate=fdate
            self.ftime=ftime
            self.ttime=ttime
            self.notes=notes
    
        #在类里定义的函数称为方法
        def ticketinfo(self):  #类的方法与普通函数有一个区别,第一个参数必须是self,其余形参可以不定义
            print('车次:',self.checi)
            print('出发站:',self.fstation)
            print('到达站:',self.tstation)
            print('出发日期:',self.fdate)
            print('出发时间:',self.ftime)
            print('到达时间:',self.ttime)
    
        #在类里定义的函数称为方法
        def stopinfo(self):
            k = ' ' #一个空格,6*k表示6个空格
            print('车次  ','出发站  ','到达站  ','出发日期  ','出发时间  ','到达时间  ','备注  ')
            print(self.checi,k,self.fstation,self.tstation,2*k,self.fdate,6*k,self.ftime,6*k,self.ttime,6*k,self.notes)
            
             
    #如果模块是被直接运行的,则代码块被运行;如果模块被import,则代码块不被运行
    if __name__ == '__main__':
        T=Ticket("D11","广州南站","桂林北站","2020-07-01","08:10","12:30","--")  #类的实例,传入实参(即给变量赋值)
        T.ticketinfo()  #调用类的方法
    
    
    

    执行class01.py文件,结果是
    在这里插入图片描述

    class02.py 代码如下

    from class01 import Ticket  #导入模块class01中的类Ticket
    
    T = Ticket("G123","上海南站","广州南站","--","--","--","天气原因停运") ##类的实例(即给变量赋值)
    
    T.ticketinfo()  #调用类的方法
    
    print('**************************************************************')
    
    T.stopinfo()  #调用类的方法
    

    执行class02.py文件,结果是
    在这里插入图片描述

    展开全文
  • 一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。针对这种特殊的类,Python 3.4 中新增加了...
  • 一个类的实例也可以有改变自己状态的(定义在类中的)方法。简单的说,类就是一个事物的抽象描述。所以类中可以包含描述类的方法和属性,其中方法又分为普通方法,类方法,静态方法。详细区别可查看Python的@staticmet...
  • 一、类定义:class :类实例化后,可以使用其属性,实际上,创建一个...不能在类地外部被使用或直接访问在类内部的方法中使用时 self.__private_attrs类的方法在类地内部,使用def关键字可以为类定义一个方法,一般...
  • 类的定义使用类是某类事物的统称,对象是实物。例如动物是一个类,狗或者猫则是对象。# 定义一个类 类的继承#继承
  • 本文实例讲述了Python类的定义、继承及使用对象的方法。分享给大家供大家参考。具体分析如下:Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的...
  • 可以使用下面语法来定义一个空,即一个什么属性都没有的类,一个什么事情也做不了的类。class 类名:pass这里类名要求和变量名一样,可以由字母、数字和下划线组成,一般首字符是大写字母,对于长度没有限制...
  • 类是事物功能和属性的抽象,对象是类的实例化。就像人人都知道小汽车可以干什么什么的,但光想小汽车如何好是没有用的,得开车或坐才能感受到小汽车的好。人脑里的小汽车是抽象的,即类,而坐上的某辆车是小汽车的...
  • 实验5 类的定义与使用 一.实验目的 学会定义类 学会根据类创建对象 掌握对象的使用 掌握对象的序列化与反序列化 二.实验原理 类的定义:利用所提供的功能描述,用代码实现类的定义及使用 三.实验步骤与内容 (1...
  • 1. 基本概念面向对象,英文缩写为OO。对象是一个抽象概念,英文称作Object,表示任意存在事务,世间万物皆对象。...保证内部数据完整性,提高程序可维护性。继承:实现重复利用,子类通过继承复用了父类...
  • 欢迎各位小哥哥小姐姐阅读本文章,对大家学习有...我刚刚开始使用python,我想知道如何用python定义联合(使用ctypes)?希望我通过ctypes支持工会是对。例如,以下c代码是如何在pythonstruct test{char somet...
  • 这是之前我们定义的User,现在我们在这个中自己定义一个函数,取名为age。我们想让这个age函数实现这样功能:根据用户输入birthday计算出这个用户年龄是多大。用户年龄我们可以在进行数据分析、精准营销...
  • 注意:单击此处https://urlify.cn/zyuiIj下载完整示例代码,或通过Binder在浏览器中...数据集是使用make_biclusters函数生成,该函数创建一个较小值矩阵并植入具有较大值双聚(bicluster),然后打乱行和...
  • python的定义类方法有三种形式普通方法方法(@classmethod)静态方法(@staticmethod)1、普通方法的使用class A(): def __init__(self, name, age): self.name = name self.age = age def get_name(self): print('...
  • 9.2 使用类和实例你可以使用类来模拟现实世界中很多情景。编写好后,你大部分时间都将花在使用根据创建实例上。你需要执行一个重要任务是修改实例属性。你可以直接修改实例属性,也可以编写方法以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,807
精华内容 1,122
关键字:

python类的定义与使用

python 订阅