博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python self的用法
阅读量:5364 次
发布时间:2019-06-15

本文共 850 字,大约阅读时间需要 2 分钟。

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

#coding:utf-8class Person:    def __init__(self,name):         self.name = name    def sayhello(self):         name = '此值是局部变量'         print 'my name is :',name         print 'my name is :',self.namep=Person('Bill')print pname = '此值是全局变量'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__()方法就是在有原材料的基础上,加工,初始化商品环节。

转载于:https://www.cnblogs.com/linyouyi/p/11409730.html

你可能感兴趣的文章
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
Redis常用命令
查看>>
[转载]电脑小绝技
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
解决响应式布局下兼容性的问题
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>