1)不加self是局部变量,只在这个方法里有效;加self则是实例变量,相当于别的函数定义的变量你实例化出来就可以使用

#coding:utf-8
class Person:
def __init__(self,name):
self.name = name
def sayhello(self):
name = '此值是局部变量'
print 'my name is :',name
print 'my name is :',self.name p=Person('Bill')
print p
name = '此值是全局变量'
Person(name).sayhello() 打印结果:
<__main__.Person instance at 0xb775706c>
my name is : 此值是局部变量
my name is : 此值是全局变量

2) __new__()和__init__()

发现实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法
__new__()必须要有返回值,返回实例化出来的实例,需要注意的是,可以return父类__new__()出来的实例,也可以直接将object的__new__()出来的实例返回。
__init__()有一个参数self,该self参数就是__new__()返回的实例,__init__()在__new__()的基础上可以完成一些其它初始化的动作,__init__()不需要返回值。
若__new__()没有正确返回当前类cls的实例,那__init__()将不会被调用,即使是父类的实例也不行。
我们可以将类比作制造商,__new__()方法就是前期的原材料购买环节,__init__()方法就是在有原材料的基础上,加工,初始化商品环节。

最新文章

  1. ORACLE快速彻底Kill掉的会话
  2. js,css小知识点记录
  3. Jstorm可靠性分析
  4. Latent semantic analysis note(LSA)
  5. 基于类型系统的面向对象编程语言Go
  6. select中无法使用click的处理
  7. JQuery事件手册
  8. JAVA设计模式--strategy(策略者模式)
  9. 银行ATM机工作流程模拟编程(代码)
  10. NOIP2005-普及组复赛-第三题-采药
  11. java8之stream
  12. 【转】CentOS 6.3(x86_64)下安装Oracle 10g R2
  13. spawn-fcgi运行fcgiwrap
  14. react-native布局篇
  15. 34.Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试
  16. 创建并使用maven archetype的随笔
  17. centos6 安装EPEL
  18. java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
  19. 九度OJ小结2
  20. 简明PR教程

热门文章

  1. 页面background不随滚动条填充颜色
  2. Unity NGUI插件
  3. SpringDataRedis依赖
  4. Minimum Snap轨迹规划详解(2)corridor与时间分配
  5. WebBug靶场基础篇 — 03
  6. Address already in use: JVM_Bind 8083端口被占用的几个解决办法
  7. option click事件
  8. super_blocks没有导出
  9. PAT_A1084#Broken Keyboard
  10. PAT_A1023#Have Fun with Numbers