精华内容
下载资源
问答
  • 实例对象通过 变量名 = 类名(形参列表) 这样的语法创建对象称为实例对象 二、实现过程及内存分配 声明一个类对象后会开辟一块内存空间,通过对象访问这块内存空间,这块内存空间中含有创建时声明的所有...

    一、类对象与实例对象

    Python中对象分两种

    • 类对象:声明类时会默认有一个类对象,这个对象的名与类名相同。
    • 实例对象:通过 变量名 = 类名(形参列表)  这样的语法创建的对象称为实例对象

    二、实现过程及内存分配

    • 声明一个类对象后会开辟一块内存空间,通过类对象访问这块内存空间,这块内存空间中含有创建时声明的所有成员和类的内置成员。
    • 创建一个实例对象会开辟一块内存空间,通过实例对象访问这块内存空间。

    例子:

    class Cat(object):
        #类属性
        name="吉姆"
        #方法
        def eat(self):
            print("%s在吃鱼"%self.name)
        def drunk(self,name):
            self.name=name  ##实例属性
            print("%s在喝水" % self.name)
    
    tumao=Cat()
    lanmao=Cat()
    
    

    这段代码执行过程可以理解如下:

    1、类对象创建时在内存中开辟一块空间,用来储存创建的类对象,Cat指向该内存地址,该类对象中包含了类属性和方法;

    2、实例对象创建时同样会在内存中开辟一块空间,用来储存创建的实例对象,tumao和lanmao分别指向不同的内存地址。在该实例对象中有一个特殊的属性能够帮助实例对象指向类对象;

    当Python在创建实例对象后自动执行init方法时,给该实例对象传递一些自定义/默认的属性(实例属性);

    没有初始化init方法,同时没有传入参数时,实例对象中的内容仅包含特殊属性。

    展开全文
  • python对象创建

    2020-08-22 16:30:10
    python对象的创建是一个过程,其前提是类的创建(类:将具有共同特征以及行为的一组对象... 执行类的__new__方法创建对象---------->执行类的__init__方法初始化对象--------->将对象赋值给变量 代码示例如下:

    python对象的创建是一个过程,其前提是类的创建(类:将具有共同特征以及行为的一组对象进行抽象,抽象出来的东西,描述一类事物的概念)而对象是实际存在的物体,包含了具体属性和方法的实体,这个事物是通过类创建创建出来的。
    其过程是:
    类的创建(class 类名)----------->变量的赋值(变量=类名(参数))-----------> 执行类的__new__方法创建对象---------->执行类的__init__方法初始化对象--------->将对象赋值给变量
    代码示例如下:

    class Person:
        """Person"""
        def __new__(cls, *args, **kwargs):
            print("new")
            return object.__new__(cls)
    
        def __init__(self, name):
            self.name = name
            print("hello")
    person1=Person("Tom") 
    print(person1.name)
    

    运行结果是:

    new
    hello
    Tom
    

    归纳总结:
    1.类中__new__ 通常用于控制生成一个新实例的过程。它是类级别的方法。
    2.类中__init__ 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。

    展开全文
  • python通过关键字 class 可以定义一个自定义数据类型,基本语法如下: class 类名: 属性 方法 注意:python类名规则同变量,一般使用大驼峰表示。 案例: 例如:创建一个point类用于表示平面坐标系中的一个点...

    面向对象

    前面我们讲到基本数据类型用来表示最常见的信息,但是信息有无穷多种,为了更好的表达信息,我们可以创建自定义数据类型。

    1.类

    一种数据类型就是类,例如整数,浮点数,字符串。自定义类就是为了自定义数据类型

    2.类的定义

    python中通过关键字 class 可以定义一个自定义数据类型(自定义类),基本语法如下:

    class 类名:
    	属性
    	方法
    

    类名:
    规则:同变量名
    规范:一般使用大驼峰表示

    案例:
    例如:创建一个point类用于表示平面坐标系中的一个点。
    创建一个类(数据类型)

    class point:
    	'''
    	表示二维平面里的一个点
    	'''
    print(point, type(point))   # <class '__main__.point'> (当前文件下的point类) <class 'type'> (类型是 '类')
    

    规范 : 类的定义要离上面的代码要隔两个空行。

    2.对象

    2.1对象的概念

    某种数据类型的一个具体的数据称为这个类的一个对象或者实例,通过类创建对象叫做实例化。 举个例子:女朋友就是类,你的女朋友就是一个对象
    所谓的面向对象,就是把一些数据抽象成类的思想
    python是一门面向对象的编程语言,python中一切皆对象。
    前面学习的函数也是python中的一个类,定义的某个函数就是函数类的一个具体实例。

    实例化对象

    创建对象:根据数据类型(类)创建一个对象,这个过程就叫做实例化。
    基本数据类型有特殊的实例化方法
    自定义数据类型创建对象的方法 : 类名(参数)
    理解为:把类当作一个函数去调用

    class GirFriend:
    	'''
    	女朋友
    	'''
    g = GirFriend()
    print(g, type(g)) 
    默认情况下它的值是一个内存地址,
    #  <__main__.GirFriend object at 0x00000260C5C37908> <class '__main__.GirFriend'> # 当前文件下 GirlFriend 类
    
    
    

    面向对象:为了更好地处理数据,我们自定义数据类型来包装这个数据。

    3.属性

    类和对象的特征数据称为属性

    3.1类属性

    类特征称为类属性,所谓的类属性就是这个数据类型共有的特征。

    直接定义在类中的变量(与class语句只有一个缩进),称为类属性
    定义类属性

    class point:
    	'''
    	表示二维平面里的一个点
    	'''
    	name = '点'
    p = point()
    

    访问类属性:有两种方法
    ①.类名.属性名

    print(point.name)   # 点
    

    ②.对象.属性名

    p = point()
    print(p.name)  #  点
    
    print(p.age)  # 报错 AttributeError: 'point' object has no attribute 'age'
    # 访问没有的属性,会报错。
    

    注意:如果你访问一个不存在的属性 它就会报错

    3.2 对象属性

    对象的特征数据称为对象属性
    女朋友是类,这个类共有的属性,一般会定义为类属性。
    例如:所有的女朋友性别都是女
    你的女朋友是对象,这个对象特有的属性一般会定义为对象属性
    通过类可以访问类属性,通过对象也可以访问类属性,类属性是类和对象的公有属性。
    举例: 女朋友的性别是女性,你的女朋友性别也是女性
    但是对象属性 只能通过对象访问
    举例:你的女朋友叫小花,但是 不是所有的女朋友都叫小花,小花是对象属性,通过类无法访问对象属性。
    3.2.1 对象属性的定义
    对象属性一般定义在构造方法中,详见下面构造方法一节。
    通过句点法 动态地给对象增加属性 (对象.对象属性 = )以赋值的方式可以直接定义对象属性
    对象.属性名 = 值

    class point:
        '''
        表示二维平面里的一个点
        '''
        name = '点'
    
    p = point()
    p.x = 0
    p.y = 0
    

    访问对象属性
    对象.属性名
    通过一个对象去访问一个属性的时候,首先找自己有没有这个属性,有就返回,没有就找他的类的属性,如果还没有就报错。所以,如果一个对象属性名和类属性名重名了,访问只会返回对象属性。

    print(p.x, p.y)  # 0 0 
    

    4 . 方法

    定义在类里的函数叫方法,通过调用的方式的不同,分为对象方法,类方法,静态方法和魔术方法。
    属性(特征)是类或者对象的某个具体的值,比如女朋友的属性,就是他的身高,体重,名字 这些具体的值
    方法可以理解为她的功能,女朋友可以陪你吃饭,可以陪你逛街,可以执行某些动作,实现某些功能。

    4.1 对象方法 – ①

    定义在类中的普通方法,一般通过对象调用对象方法

    class point:
        '''
        表示二维平面里的一个点
        '''
        name = '点'
    
    p = point()
    p.x = 0  # 点的x轴坐标
    p.y = 0  # 点的y轴坐标
    print(p)
    
    '''
    需求1:写一个函数,接收一个point的对象,打印一个点 输出形如 点(x,y)
    '''
    def my_print(point):
        '''
        打印point 类的对象,输出 点(x,y)
        :param point:
        :return:
        '''
        print('点({},{})'.format(point.x, point.y))
    
    my_print(p)
    

    需求 2 :写一个函数,计算两个点的距离

    (x1 , y1) (x2, y2) 他们的距离,坐标的差的平方和开根号
    ((x1 - x2)^2 + (y1 - y2)^2)^0.5
    def distance(p1, p2):
        '''
        计算点p1和p2的距离
        :param p1: Point的对象
        :param p2:
        :return:
        '''
        return ((p1.x - p2.x)**2 + (p1.y-p2.y)**2)**0.5
    p2 = point()
    p2.x = 1
    p2.y = 1
    
    res = distance(p, p2)
    print(res)    # 1.4142135623730951
    
    

    总结: my_print, distance 都接受 1个或多个point类的对象作为参数
    这两个函数与point类密切相关
    分开定义,相关性就不明显
    所以可以把这两个函数定义在类的里面,显示的相关

    4.2 对象方法 – ②

    直接定义在类里的函数就是对象方法
    怎么调用呢?有两种方法

    • 类.方法名调用 这种方式和普通的函数调用没有什么区别,但是我们不用
    • 对象.方法名 这种方式才是正确的调用方式,但是这样去有隐藏在背后的操作
      当通过对象去调用对象方法的时候,会把对象本身隐式的传给第一个参数
      所以,对象方法的第一个参数,一般定义为self,表示自己。
    class point:
        '''
        表示二维平面里的一个点
        '''
        name = '点'
    
    p = point()
    p.x = 0  # 点的x轴坐标
    p.y = 0  # 点的y轴坐标
    	def my_print(self):
        '''
        打印point 类的对象,输出 点(x,y)
        :param point:
        :return:
        '''
        print('点({},{})'.format(self.x, self.y))
    	
    	def distance(self, p2):
        '''
        计算点p1和p2的距离
        :param p1: Point的对象
        :param p2:
        :return:
        '''
        return ((self.x - p2.x)**2 + (self.y-p2.y)**2)**0.5
        
    p1 = point()
    p1.x = 0
    p1.y = 0
    
    p2 = point()
    p2.x = 1
    p2.y = 1 
    
    # 通过类调用
    point.myprint(p1)
    res = point.distance(p1,p2)
    print(res)
    
    # 通过对象调用
    p1.my_print()
    res = p1.distance(p2)    # p2.distance(p1)
    print(res)
    

    可以打断点去调试一下
    刚开始学习面向对象的时候,不要动脑筋,刚开始就去理解它的字面意思就可以了。

    4.3 魔术方法

    魔术方法,一般实现特殊的功能,它的命名方式: __方法名__
    1 . 构造方法,或者叫做初始话方法
      __init__ 
      定义对象的属性,它接收实例化时传入类名的参数
      当对象创建的时候,它自动调用
    
    展开全文
  • Python中类与对象

    2019-12-10 17:39:26
    Python中,使用赋值的方式创建类的对象,其格式一般为: 对象名=类名([参数列表]) 对象创建后,可以使用“对象.成员”“对象.方法()”调用该类的成员和方法。 对类的成员访问归纳如下: (1)公有的类成员:在...

    在Python中,使用class关键字定义一个新类。定义类的一般格式为:

    class 类名:
    """类说明"""
    类体
    

    在Python中,使用赋值的方式创建类的对象,其格式一般为:
    对象名=类名([参数列表])
    对象创建后,可以使用“对象.成员”“对象.方法()”调用该类的成员和方法。
    对类的成员访问归纳如下:
    (1)公有的类成员:在类的方法中通过“类名.类成员”或“self.类成员”访问,在类的外面通过“类名.类成员”或“对象名.类成员”访问。
    (2)公有的实例成员:在类的方法中通过“self.类成员”访问,在类的外面通过“对象名.类成员”访问。
    (3)私有的类成员:在类的方法中通过“类名.类成员”或“self.类成员”访问,在类的外面不能直接访问。
    (4)私有的实例成员:在类的方法中通过“self.类成员”访问,在类的外面不能直接访问。
    例:

    #定义类
    class student:
        def __init__(self,sno,name,sex,age):
           self.sno=sno                      #定义公有成员
           self.name=name         
           self._sex=sex                     #定义单下画线私有成员
           self.__age=age                    #定义双下画线私有成员
        def getage(self)
           return self.__age
    #创建对象
    w=student("1800000","xiaofang","女",18)
    print("学号:%s,姓名:%s,性别:%s,年龄:%d."%(w.sno,w.name,w._sex,w.getage()))
    

    运行结果:学号:1800000,姓名:xiaofang,性别:女,年龄:18.

    展开全文
  • 本文实例讲述了Python 使用元类type创建对象。分享给大家供大家参考,具体如下: type(123) 可以查看变量的类型;同时 type(类名,(父类),{类属性:值,类属性2:值}) 可以创建一个类。 在Python中不建议一个函数具有...
  • 通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象创建对象的过程,又称为类的实例化。类名(参数)定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() ...
  • 特殊成员 循环可迭代对象 所以循环根本不是循环这个对象,而是特iter方法的...默认情况下,创建类的时候会通过type这个类来创建,但是如果想自定义的话,则需要使用到metaclass来指定,告诉他不要通过type来创建了。
  • PYTHON之类和对象

    2017-12-26 22:51:42
    类和对象 类:具有想通过属性的方法的对象的...创建对象:属性写在类外的情况,就是通过对象.属性 对象。方法()的方式调用 调用对象的方法: 创建多个对象: class person:  def __init__(self,new_name,n
  • 类属性是所有类的成员共有的属性,可以通过类名或者对象名来访问。 但是,如果用对象名来修改类属性的值,会出现问题:这样做实际的效果是为这个对象重新创建了一个新属性并赋值,而不是修改类的属性。 如下图...
  • Python--面向对象

    2021-06-02 16:11:24
    定义类二、创建对象1.创建对象demo:2.添加和获取对象的属性3.在方法内通过self获取对象属性4.有参数的_init_(self)方法5.魔法方法:_str_()方法6.魔法方法:_del_()方法 一、类的构建 1.类(Class)由3个部分构成 ...
  • 面向对象编程 面向对象的基本思想 面向对象变成实际上是在创建类,之后再由类创建对象的一个...c=Car() # 把类的概念进行是例化,实列化的过程就是通过类来创建对象的过程 print(c) # <__main__.Car object at 0x0
  • 通过类名后跟一对圆括号实例化一个类 复制代码 代码如下: mc = MyClass() # instantiate class 初始化类 ‘int()’构造器 def __int__(self):  pass 注意:self类似Java的this关键字作用,它代码指向自身实例的引用 ...
  • python的类和对象

    2019-11-01 16:23:07
    类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。 3、类的方法 在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self ...
  • Python面向对象语法

    2021-02-03 16:06:55
    Python中变量、数据、函数都是对象 以双下划线开头结尾的都是python的内置属性或方法如"__doc__"、"__init__()" 通过内置函数dir(),查看对象的属性和方法 定义包含方法的类 ...使用类名创建对象会自动调用此方
  • Python面向对象练习题汇总

    千次阅读 多人点赞 2020-07-29 17:34:32
    1. 什么是类,什么是对象? 类:对一类事物的描述,是抽象的、概念上的定义。 对象:实际存在的该类事物的每个个体,因而也称实例(instance) ...5. python中如何通过创建对象 对象名 = 类名()
  • OO的三大特性:继承,封装,多态 一.类和对象 1、以Student类为例,在Python中,定义类如下: ...定义好了类,就可以通过Student类创建出Student的实例,创建实例是通过类名+()实现: student = Studen...
  • Python中,类定义通过 class 关键字进行定义。 class User(object): pass按照惯例,类名以大写字母开头,紧接着是(object),表示该类是从 object 类进行继承的。 创建实例 创建实例使用 类名+() user=User()定义...
  • 本文讲解了创建类、实例化类、类属性、特殊方法内建属性、静态变量属性、实例变量属性、方法...python的属性与Java和C++等面向对象语言不同,python的属性既包括了数据成员还包括函数元素,通过句点符号来访问。 特...
  • python面向对象

    2020-07-01 16:36:47
    # 3、修改类属性需要通过类名,因为通过实例名会创建一个同名的实例变量 # 4、当实例属性和类属性相同时,通过实例访问,优先访问的是实例属性 # 类方法: # 1、可以通过类名调用,也可以通过实例名调用 # 2、类...
  • 如果直接通过类名去调用方法,其值就是普通的函数对象。 例子 类 C 函数方法 m C.m 函数对象 p = C() p.m 方法对象 p.m(...)实际上等价于C.m(p, ...) 注意:方法对象和函数对象不同,它实际上包含了两部分:...
  • python的面向对象

    2019-05-28 19:35:07
    python的面向对象面向对象基础定义类并创建实例访问限制:self.__xxx创建类属性创建类方法类的继承基础多态类的特殊方法 面向对象基础 定义类并创建实例 在Python中,类通过 class 关键字定义。以 Person 为例,定义...
  • 面向对象  ... 通过下面的例子来初步了解面向对象的编程方式。 class Person: # class + 类名 :定义一个类 place = 'earth' # 类属性 (静态属性) # __init__初始化方法,默认创建一个s...
  • python面向对象基础

    2020-03-02 10:36:47
    文章目录python定义与创建python 类的实例化类对象动态添加方法python类中的变量与方法...(2)创建类的实例对象(根据图纸造出实际的物品),通过实例对象实现特定的功能。 定义类: 基本语法格式 class 类名: ...
  • 面向对象的三大特性 一、封装 把数据、值、变量放入到对象中 ...1、创建对象 2、通过对象执行类中的一个特殊方法(_init_方法) class info: def __init__(self,name,age): self.name = n...
  • python 类与对象

    2017-12-27 08:01:19
    类:具有相同的属性和方法的对象的...创建对象:属性写在类外的情况,就是通过对象,属性,对象.方法()的方式调用. 调用对象的方法: 创建多个对象: self:Python类里声明的方法必须的参数 def _init_(self):初始化属性; def _
  • Python类和对象

    2018-01-02 20:27:23
    Python类和对象 类:具有相同的属性和方法的对象的集合。 对象:万物皆对象。...创建对象: 属性写在类外的情况,就是通过对象,属性,对象,方法的方式调用。 属性相对于类来说属于全局,每个方法都可以调

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 434
精华内容 173
热门标签
关键字:

python通过类名创建对象

python 订阅