Python中类的定义其实就是执行代码块:

class cc:
a=0
print '+++++',
print a

会直接执行print语句而不是在实例化cc时执行。执行后会生成对应的类的命名空间。

可以用"类名.属性"来访问或者修改此空间的属性。如cc.a每次实例化一个对象就是继承上述属性。

class cc:
a=0
print '+++++',
print a
def init(self):
cc.a=cc.a+1#修改类的a,下一次实例化时a将发生改变 def init1(self):
self.a=self.a+1#修改自身的a,不影响类的a cc1=cc()
cc1.init()
print cc.a
print cc1.a
cc2=cc()
cc2.init1()
print cc.a
print cc2.a

比较如下代码:

class cc:
print '+++++',
def __init__(self):
self.a=1#创建时自动添加属性a c=cc()
print c.a
print cc.a#出错,cc没有属性a

也可以看出,类的命名空间中的属性实在第一次执行时生成的。

可以在类的定义中设置共享属性

Python 类的命名空间的更多相关文章

  1. python类:属性

    http://blog.csdn.net/pipisorry/article/details/50708616 Python 中的 property 属性 Python中有个很赞的概念,叫做prope ...

  2. 类的命名空间&组合

    类的命名空间◆类中的静态变量可以被类调用也可以被对象调用◆对不可变数据类型来说,类变量最好用类名操作 class Person: money = 0 mother = Person() father ...

  3. 九. Python基础(9)--命名空间, 作用域

    九. Python基础(9)--命名空间, 作用域 1 ● !a 与 not a 注意, C/C++可以用if !a表示if a == 0, 但是Python中只能用if not a来表示同样的意义. ...

  4. Python类对象

    python类对象 python类对象支持两种操作:属性引用和实例化. 属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name. 有效的属性名称是类对象被创建时存在于类命名空 ...

  5. python类学习以及mro--多继承属性查找机制

    版权声明:本文为博主原创文章,未经博主允许不得转载. 还记得什么是新式类和旧式类吗? Python中,一个class继承于object,或其bases class里面任意一个继承于object,这个c ...

  6. 学习python类

    类:Python 类提供了面向对象编程的所有基本特征: 允许多继承的类继承机制, 派生类可以重写它父类的任何方法, 一个方法可以调用父类中重名的方法. 对象可以包含任意数量和类型的数据成员. 作为模块 ...

  7. day23 01 类的命名空间

    day23  01 类的命名空间 一.初识面向对象复习 定义类: class 函数:方法 动态属性 变量:类属性 静态属性 过程: (1)_init_方法:初始化:def _init_(self,参数 ...

  8. python类相关总结(持续更新)

    __init__() 构造函数 __new__ () 在构造函数之前,用来创建对象的,返回值是一个对象,__init__指的是将__new__返回的对象作为self来传入函数中,后续参数两者都可以一样 ...

  9. python 类中方法总结 --- 实例方法、类方法、静态方法

    在python的类语法中,可以出现三种方法,具体如下: (1)实例方法 1)第一个参数必须是实例本身,一般使用[self]表示. 2)在实例方法中,可以通过[self]来操作实例属性,[类名]来操作类 ...

随机推荐

  1. iOS高效开发必备的10款Objective-C类库

    http://blog.csdn.net/yhawaii/article/details/7392988

  2. centos网卡配置和防火墙停止和启动

    Linux 设置网卡配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static ...

  3. redis原理分析

    基本全是参考http://blog.csdn.net/a600423444/article/details/8944601     redis的使用大家都很熟悉,可能除了watch 锁,pipelin ...

  4. jquery设置自己的标识符

    $(function(){ var $jc=jQuery.noConflict(); $jc('.main').css({'margin':'0 auto'}) })

  5. LeetCode 445 Add Two Numbers II

    445-Add Two Numbers II You are given two linked lists representing two non-negative numbers. The mos ...

  6. ListView条目的侧拉删除

    功能实现:类似QQ聊天记录中条目,左滑,可以删除该条目的功能:后续可以在自己的项目中添加该功能. 步骤一: (1)定义主布局,里面包含一个简单的ListView:命名id="lv" ...

  7. SQL Server 2012 通用分页存储过程

    创建存储过程: USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCedure [dbo].[Split ...

  8. JDBC获取sql server存储过程查询结果集(没有出参)

    对于一些较为复杂的统计条件查询,可以通过存储过程来实现,既可以提高效率,减少网络流量,也可以避免sql语句耦合在代码中.但是存储过程返回的结果集如何获取(类似表数据),却着实让我费劲心力. 如下: C ...

  9. 音痴又音痴的LT

    中文题不解释.比赛时想着操作一次sort一次,然而T到死.后来才知道C++内置容器vector这么强大. 内置函数upperbound(查找数组的首地址, 查找数组的尾地址, 待查找元素)为logn复 ...

  10. ABP mapto 映射

    obj1.MapTo(obj2); obj1=>obj2: 在obj1实体里添加映射 [AutoMap(typeof(obj2))] public class obj1 { }