python 类 二: 类的属性

类有数据属性和方法属性:

属性就是 一个对象的数据成员或者函数成员。

类的数据属性只有被类的实例引用后去更新或者被类定义的可以访问这个数据属性的方法去改变( 也要通过类的实例化)。

也可以说,类的数据属性是跟类绑定的,类的数据属性是不受任何实例化的对象所影响的。

有两种方法可以去访问类的属性,一种是dir(),一种是 class.__dict__属性

dir() 可以看到对象的属性的名字列表。

类的内置属性 __dict__  则可以返回一个字典,对应的是 属性名 键值 的对应关系 。也就是返回的是对象的属性名和属性值的对应关系。

下面是个简单的对类的 dir()  和 类的内置 __dict__方法看到的属性不同的代码例子:

[[email protected] eg_4]# cat !$
cat class_property.py
#coding:utf-8

class demo(object):
    ‘demo for class property‘
    def __init__(self,testname):
        self.name = testname
    def update_name(self,newname):
        self.name = newname

print dir(demo)
print 
print demo.__dict__
[[email protected] eg_4]# 
[[email protected] eg_4]# 
[[email protected] eg_4]# 
[[email protected] eg_4]# 
[[email protected] eg_4]# python2.7  class_property.py
[‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__doc__‘, ‘__format__‘, ‘__getattribute__‘, ‘__hash__‘, ‘__init__‘, ‘__module__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘update_name‘]

{‘update_name‘: <function update_name at 0x7febc61b4c80>, ‘__module__‘: ‘__main__‘, ‘__dict__‘: <attribute ‘__dict__‘ of ‘demo‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘demo‘ objects>, ‘__doc__‘: ‘demo for class property‘, ‘__init__‘: <function __init__ at 0x7febc61b4c08>}
时间: 2025-01-31 15:06:44

python 类 二: 类的属性的相关文章

Python - 04182016 - 类与实例间属性的理解

Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问类属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去来的names里面找,找不到就是error啦 class Pclass(object): """docstring for Pclass""" num = 10 def __init__(self): super(Pclass,

python 类和对象的属性

python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性,父类和子类的类属性都会被改变. 3. 子类继承父类的类属性可以通过类名+属性名使用,但是一旦发生赋值,就会新定义一个相同名字的子类自己的类属性. 4. 类的对象可以通过对象名+属性名使用类属性,但是一旦发生赋值,就会新定义一个相同名字的对象属性,而且不会被继承. eg: >>> class

Python的程序结构[2] -&gt; 类/class -&gt; 类的特殊属性

类的特殊属性 / Special Property of Class Python 中通过 class 进行类的定义,类可以实例化成实例并利用实例对方法进行调用. 类中还包含的一些共有的特殊属性. 特殊类属性 含义 __name__ 类的名字(字符串) __doc__ 类的文档字符串 __bases__ 类的所有父类组成的元组 __dict__ 类的属性组成的字典 __module__ 类所属的模块 __class__ 类对象的类型 1 class Foo(): 2 """

【速记速学】Python类的定义,属性,方法,访问性!

前言: Python 随着人工智能,机器学习,深度学习,AI 的发展,迅速成为宠儿. 今天,花 5 分钟时间,解读下Python中的类,定义,使用等. 如何定义自己的类呢? 01 类(对象) class dog(object)以上定义了一个dog对象,它继承于根类object. 02 类的属性 def init(self, name, dtype):self.name = nameself.dtype = dtype以上定义了dog对象的两个属性:name, dtype,通过init,这个系统函

【类不类二】Python的类变量与实例变量

在研究类的时候,难免会有很多疑问,C论坛和博客园高手如云(不知道是不是也美女如云), 搜到了这篇博文,是介绍Python的类变量和实例变量的 ! 刚好在下对self.***这种形式的实例变 量不是很理解,就拿来与诸君共享! C博客的大伽: http://blog.csdn.net/xxkkff/article/details/4396895 上一篇[类不类2]: http://www.cnblogs.com/Ruby517/p/5709558.html 一般的类定义是写成这种形式 class <

python在类中使用__slot__属性

在类中定义__slot__属性来限制实例的属性字段,在创建大量对象的场合可以减少内存占用. 创建大量对象是内存占用对比: 类中不使用__slot__ class MySlot:def __init__(self, a, b, c): self.a = a self.b = b self.c = c @profile() def main(): myObj_list = list() for i in range(50000): myObj = MySlot(i, i, i) myObj_list

Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

概念:                                                                                                                                                     ·        面向过程:根据业务逻辑从上到下写垒代码 ·        函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 ·        面向对象:对函数进行分类和封装,

理解python的元类

看了一篇文档,借鉴一下!写下自己对python元类的理解,欢迎各位大神给出意见. 我的理解就是 type用来创建元类,元类用来创建类,类用来创建实例 这样一想,是不是可以认为元类创建类的过程等同于类创建实例,类创建不同的实例,虽然每个实例都有类似的属性,方法,但具体都是不一样的! class Fruits(): def __init__(self,name,color): self.name=name self.color=color def __new__(cls,name,color): r

Python之元类详细解析

一.补充内置函数isinstance和issubclass 1.isinstance是判断一个对象是不是由一个对象产生的 1 class Foo: 2 pass 3 4 obj=Foo() 5 6 print(isinstance(obj,Foo)) #判断一个对象是否是由某个类调用产生 7 8 # 在python3中统一类与类型的概念 9 d={'x':1} #d=dict({'x':1} #) #类即类型,d是一个对象,dict是一个类,d是由调用dict产生的对象 10 11 print(