Python程序设计入门(5)类的使用简介
一、类的定义和使用
python定义一个类的基本语法是:
[def __init__(self, [agv1,agv2...]):] # 定义构造函数
def method1(self, [agv1,agv2...]): # 成员函数
使用时用:
对象实例名 = 类名(参数列表)
对象实例名.成员函数名(参数列表)
和其它语言不同之处是:
(1) python没有new关键字
(2) 成员函数必须带有 self 参数(它相当于传统语言里的 this )
(3) 成员变量不需要显式定义,不过为了方便起见,大多数人还是会在构造函数里定义,以免过于莫名其妙。
例:
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 可以直接把一个成员函数作为一个变量,就上面的类而言,可以这样:
myx = x.show_me()
print 'I am a copy!\n'
myx
2、继承和多继承
要继承其它类,定义时指定要继承的基类即可
class classname([基类一,基类二...]):
3、私有成员
python实际上并没有私有成员的概念,不过如果把变量名定义为 ___var (三个下划线)这样系统会自动把名称改为 _classname___var,
这个值可以用 self.___var 读取(因为会一起替换),但在外部是无法用 obj.___var 读取的。
如:
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、迭代器
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 返回每次被遍历的元素即可:
例:
for index in range(len(data)-1, -1, -1):
yield data[index]
for c in reverse('golf'):
print c
至此,python的基本语法也说得差不多了,至于其它一些隐秘的东西,需要大家实际操作去发现了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Comment enregistrer la fonction d'évaluation
