python中summary_python summary 1: class

class

概念

class:在python中,类的概念可以看作是某种类型合的描述,如人类可以被看作一个类,然后人类这个类可以定义出每个具体的人——你我他等作为对象,类还拥有属性和功能。属性既类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同而不同;功能则是类所能实现在行为,如人类拥有吃饭、走路和睡觉等功能。具体的开式如下:

# 例:类的概念

Class human():

Name = ‘name’

#

成员变量

Def say():#成员函数

Print

saysomething #成员变量赋初始值

Somebody =

human() #类实例化,定义一个人类对象某人

Somebody.name = ‘person

a’ #实例的属性

Somebody.say(‘hello’) #实例的方法

Python中定义和使用类的形式为:class

类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。

# 例:类定义及使用

class CAnimal:

name = 'unname' #类属性

def

__init__(self,voice='hello'): # 重载构造函数

#__init__是双划线,可不定义,如果定义,必须记得显示调用宾类行为,须包括self参数。女果从类

#的外部调用类方法时,可以不对self参数指定值。绑定or 非绑定?

#一个类只有一个init方法,如果子类拥有init方法,则会覆盖父类的init方法

#应总在init中给一个实例的所有数据属性赋一个初始值,这会减少捕捉未初始化属性浪费的时间

self.voice =

voice #数据属性,实例属性

def

__del__(self): # 重载析构函数

pass # 空操作

def

Say(self):

print self.voice

t =

CAnimal() # 定义动物对象t

t.Say() # t说话

>>

hello # 输出

dog =

CAnimal('wow') # 定义动物对象dog

dog.Say() # dog说话

>>

wow # 输出,注意参数传递的顺序

Python编程中类可以承继父类属性,形式为class

类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数。

class

CDog(CAnimal): # 继承类CAnimal

def

SetVoice(self,voice,test=‘test’): # 子类增加函数SetVoice

self.test = test

def

say(self): # 子类重载函数say

print 'Running'

bobo = CDog()

bobo.SetVoice('My Name is

BoBo!') # 设置child.data为hello

bobo.Say()

>> My Name is

BoBo!

>> running

测试init参数写法

def

__init__(self):

self.x = 4

self.y = 6

t=MyClass()

t.x=4

t.y=6

class MyClass():

def

__init__(self,x,y):

self.x = 4

self.y = 6

t=MyClass()

t.x

TypeError: __init__() takes exactly 3 arguments (1

given)

class MyClass():

def

__init__(self,x=1,y=2):

self.x = 4

self.y = 6

t=MyClass()

t.x=4

t.y=6

下划线的用法

以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import

*”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如

__init__()代表类的构造函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值