当前位置: 首页 > 编程笔记 >

Python程序设计入门(5)类的使用简介

宋嘉禧
2023-03-14
本文向大家介绍Python程序设计入门(5)类的使用简介,包括了Python程序设计入门(5)类的使用简介的使用技巧和注意事项,需要的朋友参考一下

一、类的定义和使用

python定义一个类的基本语法是:

class classname([基类一,基类二...]):

    [def __init__(self, [agv1,agv2...]):]  # 定义构造函数     def method1(self, [agv1,agv2...]):  # 成员函数


   
使用时用:

对象实例名 = 类名(参数列表)

对象实例名.成员函数名(参数列表)

和其它语言不同之处是:

(1) python没有new关键字
(2) 成员函数必须带有 self 参数(它相当于传统语言里的 this )
(3) 成员变量不需要显式定义,不过为了方便起见,大多数人还是会在构造函数里定义,以免过于莫名其妙。
例:

# -*- coding: gb18030 -*-
class mycls:

    def __init__(self, vl, vr):         self.l = vl         self.r = vr     def show_me(self):         print x.l, x.r x = mycls(3, 15) x.show_me()

二、高级应用

1、成员函数类型变量

python 可以直接把一个成员函数作为一个变量,就上面的类而言,可以这样:

x = mycls(3, 15)
myx = x.show_me()
print 'I am a copy!\n'
myx

2、继承和多继承

要继承其它类,定义时指定要继承的基类即可
class classname([基类一,基类二...]):

3、私有成员

python实际上并没有私有成员的概念,不过如果把变量名定义为 ___var (三个下划线)这样系统会自动把名称改为 _classname___var,

这个值可以用 self.___var 读取(因为会一起替换),但在外部是无法用  obj.___var 读取的。

如:

class test_cls:

    def __init__(self):         self.___aaa = 'I am a python!'     def test_func(self):         print self.___aaa #这种方法能输出正确结果 x = test_cls() x.test_func()

#下面这种方法会报错! x = test_cls() print x.___aaa

三、迭代器 和 发生器

在 python 中,很多东西都是可以用 for 来遍历的,实际是这个东西的实现是通过迭代器或发生器来实现的

1、迭代器

class Reverse:
    def __init__(self, data):
        self.data = data
        self.index = len(data)

    def __iter__(self):
        return self

    def next(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1
        return self.data[self.index]

#应用 for cin Reverse('spam'):     print c

这里的重点是 __iter__ 和 next 两个函数,使用  next 时,用  raise StopIteration 指定遍历结束。

2、发生器

发生器实际是用单独一个函数实现被遍历的源
在发生器函数中, 用 yield varname 返回每次被遍历的元素即可
例:

def reverse(data):
    for index in range(len(data)-1, -1, -1):
        yield data[index]

for c in reverse('golf'):
    print c

至此,python的基本语法也说得差不多了,至于其它一些隐秘的东西,需要大家实际操作去发现了。

 类似资料:
  • 本文向大家介绍Python程序设计入门(2)变量类型简介,包括了Python程序设计入门(2)变量类型简介的使用技巧和注意事项,需要的朋友参考一下 通常来说,Python的变量/数据类型非常多,但是它是不需要用户指定的,因为有些是根据部份系统函数生成,另外一些是自动根据变量的值识别的,这些数据类型常量在class types定义,所以使用时需要 import types如: Python的具体变量

  • 本文向大家介绍Python程序设计入门(1)基本语法简介,包括了Python程序设计入门(1)基本语法简介的使用技巧和注意事项,需要的朋友参考一下 Python是当今日趋流行的一种脚本语言,它比Java更简单,比php更强大,并且还适用于做桌面应用的开发,在ubuntu中,更加是必须的一种脚本引擎,所以有必要去学习一下,这里的文章只针对有一定编程基础,最好是比较熟悉php或javascript的用

  • 本文向大家介绍使用C语言扩展Python程序的简单入门指引,包括了使用C语言扩展Python程序的简单入门指引的使用技巧和注意事项,需要的朋友参考一下 一、简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型软件系统的开发过程中。 与其它普通脚本语言有所不

  • 本文向大家介绍php面向对象程序设计入门教程,包括了php面向对象程序设计入门教程的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php面向对象程序设计。分享给大家供大家参考,具体如下: 1.面向对象与面向过程的对比 面向过程:以事件为中心,分几个步骤去完成。不可扩展,html与php不分离 面向对象:自己作为指挥者,指挥别人去做。具有可扩展性,html和php代码分离 2.什么是对象?

  • 本文向大家介绍C# WinForm程序设计简单计算器,包括了C# WinForm程序设计简单计算器的使用技巧和注意事项,需要的朋友参考一下 一个简单的计算器的例子,在这个小程序中我们需要用到的组件有: Button:点击计算 TextBox:输出要运算的数 RadioButton:选择运算类型 GroupBox:绑定RadioButton 首先我们在界面上拖以上的控件,得到如下界面: 这时候监听计

  • 在介绍 Python 语言时,通常会提到 Python 是一门易学的编程语言,易学是 Python 最鲜明的特色。相对于 C、C++、Java 等编程语言,Python 的易学体现在它的学习曲线非常的平缓,如果学习曲线如果太陡峭,显然不适合一般人去学习掌握,大部分人没入门就放弃了。