Python的参数传递
2015-11-15 00:27
513 查看
聊聊python的类变量和实例变量
13 小时前• coco • Python , 面试类变量就是供类使用的变量,实例变量就是供实例使用的
class Person:
name="aaa"
p1=Person()
p2=Person()
p1.name="bbb"
print p1.name # bbb
print p2.name # aaa
print Person.name # aaa
这里p1.name="bbb"是实例调用了类变量,这其实和上面第一个问题一样,就是函数传参的问题,p1.name一开始是指向的类变量name="aaa",但是在实例的作用域里把类变量的引用改变了,就变成了一个实例变量,self.name不再引用Person的类变量name了.
可以看看下面的例子:
class Person:
name=[]
p1=Person()
p2=Person()
p1.name.append(1)
print p1.name # [1]
print p2.name # [1]
print Person.name # [1]
这个知识你get了吗?
面试中关于Python的参数传递
3 天前• coco •5 评论 • Python , 面试先看代码:
Python
1234 | a = 1def fun(a):a = 2print a #1 |
1 2 3 4 | b = [] def fun(b): b.append(1) b #1 |
这里首先需要弄清楚的就是可变(mutable)对象与不可变对象(immutable),在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象,当一个引用传递给函数的时候,函数自动复制一份引用,所以第一个不可变对象对于a值的引用和外面a= 1没有半毛线关系,而下面的应用则是指向对象本身的引用,那么输出的值自然就是1了,这个知识点你get了吗?
相关文章推荐
- python 基本模块介绍
- Python学习笔记0
- Step by Step Learn Python(1)
- Python正则表达式指南
- Mac OS下应用Python+Selenium实现web自动化测试
- python随机数seed用法
- Python学习路线及资源
- Python数据类型详解(列表,元组,字典,日期)
- python mapreduce习题
- Review of some Python's key value
- python学习笔记
- python 调试
- python 学习笔记3
- pip安装mysql-python报致命错误:my_config.h:没有那个文件或目录
- python import UMD has deleted
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- Python求两个list的差集、交集与并集的方法
- Python 字符串操作方法大全
- python数据分析之股票实战
- python和php的面向对象