精华内容
下载资源
问答
  • 实例属性

    千次阅读 2018-08-29 08:02:38
    实例属性: attribute(也叫实例变量) 实例属性 每个实例都可以有自己的变量用来保存对象自己的数据,称为实例变量(也叫属性) 语法: 实例.属性名 赋值规则同变量的赋值规则 首次为属性赋值,则创建此属性 ...

    实例属性: attribute(也叫实例变量)

    • 实例属性
      每个实例都可以有自己的变量用来保存对象自己的数据,称为实例变量(也叫属性)
      语法:
      实例.属性名
      • 赋值规则同变量的赋值规则
        首次为属性赋值,则创建此属性
        再次为属性赋值,则改变此属性的绑定关系
      • 作用:
        记录每个对象自身的数据
    • 示例见:
    # 此示例示意为对象添加示例变量(属性)及访问示例变量(实例属性)
    class Dog:
        """docstring for Dog"""
        def eat(self, food):
            '''此方法描述小狗的吃东西的行为,并记录这次吃的食物'''
            print(self.color, '的', self.kinds, '正在吃', food)
            self.last_food = food
    
        def show_last_food(self):
            '''此方法显示小狗上次吃的食物'''
            print(self.color, '的', self.kinds, '上次吃的是', self.last_food)
    
    
    dog1 = Dog()  # 创建一个对象
    dog1.kinds = '京巴'  # 添加实例属性
    dog1.color = '白色'  # 添加实例属性
    dog1.color = '黄色'  # 修改实例属性的绑定关系
    
    dog2 = Dog()  # 创建另一个对象
    dog2.kinds = '藏獒'  # 添加实例属性
    dog2.color = '棕色'  # 添加实例属性
    print(dog1.color, '的', dog1.kinds)
    print(dog2.color, '的', dog2.kinds)
    
    dog1.eat('骨头')
    dog1.show_last_food()
    
    dog2.eat('狗粮')
    dog2.show_last_food()
    
    展开全文
  • 类属性、实例属性 在了解了类基本的东西之后,下面看一下python中这几个概念的区别先来谈一下类属性和实例属性 在前面的例子中我们接触到的就是实例属性(对象属性),顾名思义,类属性就是类对象所拥有的属性,它...


    我们接触到的一般是实例属性(对象属性),顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有。
    对于公有的类属性,在类外可以通过类对象和实例对象访问

    类属性

    class People(object):
    	    name = 'Tom'  #公有的类属性
    	    __age = 12     #私有的类属性
    
    	p = People()
    
    	print(p.name)           #正确
    	print(People.name)      #正确
    	print(p.__age)            #错误,不能在类外通过实例对象访问私有的类属性
    	print(People.__age)        #错误,不能在类外通过类对象访问私有的属性
    

    实例属性(对象属性)

    class People(object):
    	    address = '山东' #类属性
    	    def __init__(self):
    	        self.name = 'xiaowang' #实例属性
    	        self.age = 20 #实例属性
    
    	p = People()
    	p.age =12 #实例属性
    	print(p.address) #正确
    	print(p.name)    #正确
    	print(p.age)     #正确
    
    	print(People.address) #正确
    	print(People.name)    #错误
    	print(People.age)     #错误
    

    通过实例(对象)去修改类属性

    实例属性会屏蔽掉同名的类属性

    class People(object):
    	    country = 'china' #类属性
    	    
    print(People.country)
    p = People()
    print(p.country)
    p.country = 'japan' 
    print(p.country)      # 实例属性会屏蔽掉同名的类属性
    print(People.country)
    del p.country    #删除实例属性
    print(p.country)
    

    总结

    • 如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性
    • 并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性。
    展开全文
  • 类属性和实例属性

    2017-08-06 19:20:24
    (1)类对象和实例对象的区别  类对象: 是类名  实例对象:是类实例化的对象 ... 实例属性:1、在类中,self.属性 self当前实例对象  2、在类外,实例对象.属性 (3)类方法和实例方法和静态方法的区别
    (1)类对象和实例对象的区别
        类对象: 是类名
        实例对象:是类实例化的对象

    (2)类属性和实例属性的区别
        类属性:1、类对象.属性 = 值
            2、定义在类内部,方法外部

        实例属性:1、在类中,self.属性    self当前实例对象
              2、在类外,实例对象.属性

    (3)类方法和实例方法和静态方法的区别
        实例方法:
        语法:
            必须有一个参数,这个参数表示当前实例对象,一般是self
        调用:
            只能通过实例对象调用


        类方法:
        语法:
            必须有一个参数,这个参数表示当前类对象,一般是cls。在方法的头部加注解(装饰器)@classmethod
        调用:
            实例对象可以调用
            类对象可以调用
        
        静态方法:
        语法:普通函数的格式,不需要强制要求传递参数。在方法的头部加注解(装饰器)@staticmethod
              一般用于与实例对象、类对象无关的内容

        调用:
            实例对象可以调用

            类对象可以调用

    class Flower:
        #类属性
        nums = 10
        
        #实例方法
        def __init__(self,breed,color):
            
            #实例属性
            self.breed = breed
            self.color = color
            self.nums_operate()
       
        #实例方法
        def info(self):
            print('品种:%s,颜色:%s'%(self.breed,self.color))
        #类方法
        @classmethod
        def nums_operate(cls):
            cls.nums -= 1
    
        #静态方法
        @staticmethod
        def residue():
            if Flower.nums <= 0:
                print('今日鲜花已卖完!!')
            else:
                print('今日鲜花还剩:%s'%(Flower.nums))
    
    
    
    f = Flower('百合','白色')
    print(f.nums)
    print(Flower.nums)
    
    f.nums_operate()
    Flower.nums_operate()
    
    f.residue()
    Flower.residue()
    
    f.info()
    Flower.info(f)
    
    
    


    展开全文
  • es6 Class 的静态属性和实例属性

    千次阅读 2018-02-02 22:15:11
    Class 的静态属性和实例属性 静态属性指的是 Class 本身的属性,即Class.propName,而不是定义在实例对象(this)上的属性。 class Foo {}Foo.prop = 1;Foo.prop // 1 上面的写法为Foo类定义了一个静态属性...

    Class 的静态属性和实例属性

    静态属性指的是 Class 本身的属性,即Class.propName,而不是定义在实例对象(this)上的属性。

    1. class Foo {
    2. }
    3. Foo.prop = 1;
    4. Foo.prop // 1

    上面的写法为Foo类定义了一个静态属性prop

    目前,只有这种写法可行,因为 ES6 明确规定,Class 内部只有静态方法,没有静态属性。

    1. // 以下两种写法都无效
    2. class Foo {
    3. // 写法一
    4. prop: 2
    5. // 写法二
    6. static prop: 2
    7. }
    8. Foo.prop // undefined

    目前有一个静态属性的提案,对实例属性和静态属性都规定了新的写法。

    (1)类的实例属性

    类的实例属性可以用等式,写入类的定义之中。

    1. class MyClass {
    2. myProp = 42;
    3. constructor() {
    4. console.log(this.myProp); // 42
    5. }
    6. }

    上面代码中,myProp就是MyClass的实例属性。在MyClass的实例上,可以读取这个属性。

    以前,我们定义实例属性,只能写在类的constructor方法里面。

    1. class ReactCounter extends React.Component {
    2. constructor(props) {
    3. super(props);
    4. this.state = {
    5. count: 0
    6. };
    7. }
    8. }

    上面代码中,构造方法constructor里面,定义了this.state属性。

    有了新的写法以后,可以不在constructor方法里面定义。

    1. class ReactCounter extends React.Component {
    2. state = {
    3. count: 0
    4. };
    5. }

    这种写法比以前更清晰。

    为了可读性的目的,对于那些在constructor里面已经定义的实例属性,新写法允许直接列出。

    1. class ReactCounter extends React.Component {
    2. state;
    3. constructor(props) {
    4. super(props);
    5. this.state = {
    6. count: 0
    7. };
    8. }
    9. }

    (2)类的静态属性

    类的静态属性只要在上面的实例属性写法前面,加上static关键字就可以了。

    1. class MyClass {
    2. static myStaticProp = 42;
    3. constructor() {
    4. console.log(MyClass.myStaticProp); // 42
    5. }
    6. }

    同样的,这个新写法大大方便了静态属性的表达。

    1. // 老写法
    2. class Foo {
    3. // ...
    4. }
    5. Foo.prop = 1;
    6. // 新写法
    7. class Foo {
    8. static prop = 1;
    9. }

    上面代码中,老写法的静态属性定义在类的外部。整个类生成以后,再生成静态属性。这样让人很容易忽略这个静态属性,也不符合相关代码应该放在一起的代码组织原则。另外,新写法是显式声明(declarative),而不是赋值处理,语义更好。

    展开全文
  • 讲到原型属性,prototype属性,实例属性,自身属性,首先我们要明白这四者之间的关系。我查了一些资料,原型属性又叫prototype属性,实例属性又叫自身属性。只是叫法不同。下面我要引用他人写的一段代码来加以说明:...
  • Python 类属性和实例属性

    千次阅读 2016-10-24 14:28:03
    Python 类属性和实例属性#
  • JavaScript-实例属性与原型属性区别

    千次阅读 2019-04-17 19:57:32
    实例属性指的是在构造函数方法中定义的属性和方法,每一个实例对象都独立开辟一块内存空间用于保存属性和方法。 function Products() { this.name = 'car', this.ids = [1,2] } var product1 = new Products(); ...
  • python-类属性和实例属性

    千次阅读 2019-01-15 21:46:06
    1.实例属性: 2.类属性(静态属性): (1)类属性的使用方式 二.注意事项 (1).对于不可变数据类型 (2).对于可变数据类型 三.实例 1.定义一个不可变数据类型变量,然后调用 2.用类对象和实例对象改变类属性值 ...
  • python中的类属性、实例属性、类方法、实例方法

    万次阅读 多人点赞 2018-07-03 10:45:22
    定义类 class Person(): pass 创建实例 xiaoming = Person() ...实例属性 xiaoming = Person() xiaoming.name = xiaoming xiaoming.age = 24 xiaoming.sex = man xiaohong = Person() xiaohong.n...
  • 1.面向对象概念 1.面向对象编程:程序设计的范式,把程序当成不同对象的相互调用 2.基本思想:类与实例 类:class 定义抽象的数据类型 人 class person: ...2.python中创建实例属性虽然可以通过Pe
  • Java的类属性和实例属性

    千次阅读 2016-03-30 22:34:16
    昨天晚上看《趣味Python》这本书,然后发现的问题,就是Python之中,有类属性和实例属性的区别,而定义的时候是通过,实例属性一般通过__init__函数来定义的,类属性是直接定义在类之中,没有其他任何方法的包裹,...
  • python中类属性和实例属性的使用和区别

    千次阅读 多人点赞 2019-06-16 18:24:47
    # 类属性和实例属性 class Student: count = 10 # count是类属性 def __init__(self, name): self.name = name # name是实例属性 print(Student.count) ...
  • python中类属性和实例属性的区别

    千次阅读 2018-01-25 09:16:08
    一、类属性 (1)类属性的创建class Anamal(Object): class attr = 'class_attr' #类属性(2)类属性的访问 a、类名.属性名Anamal.attr='new_name'b、实例名....(1)实例属性的创建,通常在init
  • 实例属性、类属性 实例属性是对象独有的,每个对象与每个对象之间各不相同 实例属性的声明在__init__()初始化方法中,使用self关键字将属性绑定到当前对象上 类属性,不是写在__init__()方法中,而是在类中定义 例:...
  • Python类属性和实例属性的定义

    千次阅读 2018-10-11 19:23:07
    类属性,在类方法外定义的属性。...实例属性,__init__内定义的属性。 类属性可以直接用类名访问,具有读写权限,也可以用实例名访问,但用实例访问时只能读。当实例访问类不存在的属性时,会在实例中新建属性。 ...
  • javascript中的原型属性和实例属性

    千次阅读 2014-12-09 15:51:18
    for-in可以将一个对象的所有属性(包括原型(继承)属性的实例属性(原型属性中存在但是被该对象覆盖了原来原型中的值))。 可以使用hasOwnProperty()方法检测一个对象的属性是实例属性(true)还是原型...
  • Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法 属性分为实例属性与类属性方法分为普通方法,类方法,静态方法一:属性: 尽量把需要用户传入的属性作为实例属性,而把同类都一样的属性作为类...
  • Python学习笔记——类属性和实例属性

    万次阅读 多人点赞 2017-06-09 00:13:46
    Python学习笔记——类属性和实例属性的区别访问特性首先我们以Test类为例:class Test(object): #类属性 a = 100 def __init__(self, b): #实例属性 self.b = b t = Test(100)#通过实例化对象访问 类属性print...
  • es6中class类静态方法,静态属性理解,实例属性,实例方法理解
  • JavaScript之函数实例属性和类属性

    千次阅读 2016-04-07 19:25:03
    根据函数中声明的方式,函数中变量有3种: 1) 局部变量:在函数中以普通方式...实例属性和类属性则是面向对象的概念:实例属性是属于单个对象的,因此必须通过对象来访问;类属性是属于整个类(也就是函数)本身的,
  • 一个是类的方法(也叫动态属性)和属性(静态属性),通过类名来访问一...静态属性程序一加载时 就初始化 存放在栈中实例属性 需要实例化后 才加载 存放在堆中 转载于:https://www.cnblogs.com/wulibo/p/7218242.html...
  • 实例属性 查看实例属性 实例属性和类属性的区别 访问不可变类属性 访问可变类属性构造器和解构器构造器 __init__()类函数 __init__() 是 Python 类中预定义的方法,需要被重载才会生效。以双下划线 “__” 开头和...
  • python的类属性和实例属性

    千次阅读 2015-10-20 14:37:36
    一、简介 ...实例属性:实例仅拥有数据属性,它是与某个类的实例相关联的数据值,这些值独立于其他实例或类。当一个实例被释放后,它的属性同时也被清除了,如class A():def __init__(self):self.number
  • [Python]类属性与实例属性

    千次阅读 2013-03-04 19:20:20
    python在__init__(self) 方法中定义的属性为实例属性,并且python的实例可以动态地增加实例属性;直接跟在类名后边定义的属性都默认是类属性(类似于c++的static变量)。  要明白雷和实例都是名称空间。类是类属性的...
  • ** python中类属性和实例属性,全局变量、局部变量的区别 ** 类属性、实例属性: 全局变量、局部变量 修改全局变量,修改类属性
  • 类属性和实例属性的区别 在Python中一切皆对象,类是一个特殊的对象即类对象,描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在__init__外部定义。 实例属性:用来描述类创建出来...
  • this.name = name // 实例属性,可以通过对象.属性访问的属性叫实例属性 this.age = age } // 静态属性,挂载在构造函数 Person.info = 'nice' // 实例方法,挂载在原型链,生成的对象可直接点方法的方式调用 .....
  • 示例 #!/usr/bin/env python3 ...# 不要对实例属性和类属性使用相同的名字class Duck(object): name = "Duck"def runTest(): mDuck = Duck() print(mDuck.name) print(Duck.name) print("华丽的风格线
  • 总的来说:先加载类,在加载实例 顺序如下: 1、类属性,也叫静态属性(含静态代码块,就是属性前面加了static的那种),只加载一次。父类加载在子类前。... 生成实例的时候会调用构造方法(实例属性加载完调用构造

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,682,404
精华内容 672,961
关键字:

实例属性