1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun(a) print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉. 这里记住的是类型是属于对象的,而不是变量.而对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象. 在python中,strings, tuples…
1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun(a) print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉. 通过id来看引用a的内存地址可以比较理解: a = 1 def fun(a): print "func_in",id(a) # func_in 41322472 a…
Python作为动态语言,跟静态语言如c/c++有很大区别,其中的一个重要的特性就是Python的变量无需声明直接可用.同样,类的成员变量无需声明,直接可用.目的是为了动态语言跟灵活,在思路想到的时候能及时添加成员,而无需在回到类声明的地方,添加成员.但是,同为动态语言,类的成员变量和实例成员变量,生命周期有很大的区别,我们以一个简单的小例子说明: class student(object): '''我们声明一个学生类,希望它有‘姓名’和‘性别’两个属性''' sex = 'male' '''其…
1 Python的函数参数传递 两个例子 a = 1 def fun(a): a = 2 fun(a) print a # a = [] def fun(a): a.append(1) fun(a) print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉. 通过id来看引用a的内存地址可以比较理解: a = 1 def fun(a): print "func_in",id(a) # func_in 41322472 a = 2…
Python基础-类变量和实例变量 写在前面 如非特别说明,下文均基于Python3 大纲: 1. 类变量和实例变量 在Python Tutorial中对于类变量和实例变量是这样描述的: Generally speaking, instance variables are for data unique to each instance and class variables are for attributes and methods shared by all instances of th…
1. 要写出有意义的面向对象的代码,最核心的:类.对象.三大特性:继承.封装.多态 类变量与实例变量: class Student(): # 类变量 name = '张' age = 0 def __init__(self, name, age): # 构造函数 # 初始化变量的属性 self.name = name self.age = age student1 = Student("王",2) print(student1.name) print(Student.name) ###…
class MyTest: myname = 'peter' # add a instance attribute    def __init__(self, name):        self.name = name # class access class attribute    def sayhello(self):        print "say hello to %s" % MyTest.myname # instance can access class attri…
在研究类的时候,难免会有很多疑问,C论坛和博客园高手如云(不知道是不是也美女如云), 搜到了这篇博文,是介绍Python的类变量和实例变量的 ! 刚好在下对self.***这种形式的实例变 量不是很理解,就拿来与诸君共享! C博客的大伽: http://blog.csdn.net/xxkkff/article/details/4396895 上一篇[类不类一]: http://www.cnblogs.com/Ruby517/p/5709558.html 一般的类定义是写成这种形式 class <…
定义: a.全局变量:在模块内.在所有函数外面.在class外面,这就是全局变量. b.局部变量:在函数内.在class的方法内(未加self修饰的),这就是局部变量. c. 静态变量:在class内的,但不在class的方法内的,这就是静态变量. d. 实例变量:在class的方法内的,用self修饰的变量,这就是实例变量. 1.全局变量与局部变量: 全局变量是在整个py文件中声明,全局范围内都可以访问. 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就…
今天在看python的类和实例的时候,突然发现了一个以前遗漏的点,也就是类变量和实例变量.首先需要理解一下类变量和实例变量的概念. 类全局变量:在类中定义,对类和由类生成的实例生效,如果通过方法对类变量进行修改,修改之后会影响类和对应的实例 类局部变量:在类的构造函数中创建的变量,只对由类创建的实例生效 实例变量:由类生成的实例,在实例之后定义.修改的,不会影响类中的变量值. 来看一个比较直接的例子,定义一个Dog类,然后在类中定义一个类变量(随意就好),size,然后基于这个类,创建两个实例对…