1)class类包含:

类的属性:类中所涉及的变量 
类的方法:类中函数

2)_init_函数(方法)

1.首先说一下,带有两个下划线开头的函数是声明该属性为私有,不能在类地外部被使用或直接访问。 
2.init函数(方法)支持带参数的类的初始化 ,也可为声明该类的属性 
3.init函数(方法)的第一个参数必须是 self(self为习惯用法,也可以用别的名字),后续参数则可 以自由指定,和定义函数没有任何区别。

3)函数定义 
Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为: 
def 函数名(参数1, 参数2, ……, 参数N): 其代码形式如下面所示:

def function_name (parameters):

  block

  return value

注意在类的内部,使用def关键字可以为类定义一个函数(方法),与一般函数定义不同,类方法必须包含参数self,且为第一个参数! 
此外,可使用 **kw定义关键参数,代表任意参数,python函数可变参数及关键字参数定义参考见下文。 
python函数只能先定义再调用!

4)self参数含义 
在类的代码(函数)中,需要访问当前的实例中的变量和函数的,即,访问Instance中的: 
对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的值 
调用对应函数(function):Instance.function(),即执行对应的动作 
此处的Instance本身就是self。 
Python中的self等价于C++中的self指针和Java、C#中的this参数。

5)一个简单实例

5.1代码如下

class person():
def __init__(self,name,gender,birth,**kw):
self.name=name
self.gender=gender
self.birth=birth
for k,w in kw.iteritems():
setattr(self,k,w)
def sayhi(self):
print 'my name is',self.name
xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='',stdid='')
xiaohong = person('Xiao Hong', 'Female', '1992-2-2')
print xiaoming.name
print xiaohong.birth
print xiaoming.job
print xiaoming.tel
print xiaoming.stdid
print xiaoming.sayhi()

5.2 运行结果

Xiao Ming
1992-2-2
student
18089355
15010
my name is Xiao Ming
None

5.3实例解释 
在本例中建立一个person的类,并赋值了两个实例:xiaoming和xiaohong , self指的是传入的实例(不同实例类的属性值不同以及方法执行结果不同)即xiaoming和xiaohong,类的属性即为name,gender,birth及其他kw,类的方法即为sayhi。有关关键字参数请参考python的可变参数和关键字参数(*args **kw)

6)参考资源
python类的初始化属性

python 中_init_函数以及参数self的更多相关文章

  1. (转)python类class中_init_函数以及参数self的简单解释

    1)_init_函数(方法) #-*- encoding:utf-8 -*- class NewClass(object): def __init__(self,name): print self s ...

  2. python中定义函数和参数的传递问题

    作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 ...

  3. python中的函数的参数和可变参数

    最近在搞python的过程中需要用到给函数传可变参数..所以去网上找前人的帖子学习了一下 为了尊重原作者,这里附上链接:http://www.cnblogs.com/tqsummer/archive/ ...

  4. Python中定义函数时参数有默认值的小陷阱

    在定义函数的时候,如果函数的参数有默认值,有两种类型的参数,一种是整数,字符串这种不可变类型,另一种是列表这种可变类型,对于第一种情况没有什么特殊的地方,但是对于可变类型,有一个微妙的小陷阱. 可变类 ...

  5. Python中split()函数的用法及实际使用示例

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  6. Python中利用函数装饰器实现备忘功能

    Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   " ...

  7. Python 中的函数

    学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...

  8. Python中int()函数的用法浅析

      int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int)  Help on class int in module __builti ...

  9. Python中print()函数不换行的方法

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

随机推荐

  1. spring.net的简单使用(二)资源配置

    主要对资源配置做进一步的解析. 对资源位置的配置是在spring节点的context下,resource节点配置. spring.net的资源是可以设置在三种不同的位置的, 1.配置文件中 <r ...

  2. window8 飘带与页面切换效果

    演示效果如下 用鼠标点击滑动试试就能看到效果了 ^_^ iscroll 不仅可以做到自然滚动条的效果,看官方文档还可以用来做页面切换的效果,很好很强大. 所以我结合流行的飘带元素做了个简单的例子.. ...

  3. QT_NO_CAST_FROM_ASCII这个宏的,禁用一切来自双引号字符串字面量传入QString(有2种解决方法)

    这两天制作了两个Qt Creator增强套装的两个插件,其实也是非常简单的,但是其实花了我超过四天的时间,为什么呢?因为我之前很长一段时间都是在Linux下开发的,一切安好,没有任何问题,但是到了Wi ...

  4. nginx(一) nginx详解

    nginx是一个被广泛使用的集群架构组件,我们有必要对它有足够的了解.下面将先认识nginx:包括应用场景.nginx基本架构.功能特性.并发模型以及配置说明,最后我们再总结下,为什么选择nginx的 ...

  5. ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件

    1.ViewPager在处理滑动事件的时候要用到OnPageChangeListener( 代码:this.viewPager.setOnPageChangeListener(new MyListen ...

  6. spring之@Value详解(转载)

    @Value注入 不通过配置文件的注入属性的情况 通过@Value将外部的值动态注入到Bean中,使用的情况有: 注入普通字符串 注入操作系统属性 注入表达式结果 注入其他Bean属性:注入beanI ...

  7. 30212Java_数组

    数组 1.综述 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们. 数组的三个 ...

  8. 原子操作CAS-最小的线程安全

    原文连接:(http://www.studyshare.cn/blog-front/blog/details/1166/0 )一.原子操作是什么? 如果有两个线程分别执行两个操作A和B,从第一个线程执 ...

  9. Scala 学习之路(九)—— 继承和特质

    一.继承 1.1 Scala中的继承结构 Scala中继承关系如下图: Any是整个继承关系的根节点: AnyRef包含Scala Classes和Java Classes,等价于Java中的java ...

  10. js获取radio选中索引值

    <form name="form1" onsubmit="return foo()"> <input type="radio&quo ...