类(1)


1、类与实例

(1)定义类

语法:

class  class_name(bases):
	'define MyNewObjectType class'
	class_suite

参数

class_name:要定义的类名;bases:可以是一个(单继承)或多个(多重继承)用于继承的父类。

object是“所有类之母”。如果定义的类没有继承任何其他父类,object将作为默认的父类

如果类不需要任何操作,可以定义为:

	class  class_name(object):
			pass

(2)实例化

创建实例:myFirstObject=class_name()

(3)定义方法

class  class_name(object):		#定义类
	def function():			#定义方法
		print  'hello world'

示例1

#定义类
class AddrBookEntry(object):
    'address book entry class'
    def __init__(self,nm,ph):       	#定义构造器
        self.name=nm                #设置name
        self.phone=ph                #设置phone
        print 'Created instance for:',self.name
    def undatePhone(self,newph):            #定义函数
        self.phone=newph
        print 'Updated phone# for:',self.name
#创建实例
john=AddrBookEntry('John Doe','408-555-123')
jane=AddrBookEntry('Jane Dot','4008-399-32')
#访问实例属性
print john.name
print john.phone
print jane.name
print jane.phone
#方法调用
john.undatePhone('919-8899-90')
print john.phone

结果



示例2

#定义类
class AddrBookEntry(object):
    'address book entry class'
    def __init__(self,nm,ph):       	#定义构造器
        self.name=nm                #设置name
        self.phone=ph                #设置phone
        print 'Created instance for:',self.name
    def undatePhone(self,newph):    	#定义函数
        self.phone=newph
        print 'Updated phone# for:',self.name
        
#创建子类
class EmplAddrBookEntry(AddrBookEntry):
    'Employee Address Book Entry class'  #员工地址薄类
    def __init__(self,nm,ph,id,em):
        AddrBookEntry.__init__(self,nm,ph)
        self.empid=id
        self.email=em
    def updateEmail(self,newem):
        self.email=newem
        print 'Update e_mail address for:',self.name
#创建实例
john=EmplAddrBookEntry('John Doe','408-555-123',42,'john@163.com')
jane=AddrBookEntry('Jane Dot','4008-399-32')
#访问实例属性
print john.name
print john.phone
print john.email
#方法调用
john.undatePhone('184-6589-0000')
john.phone
john.updateEmail('john@qq.com')
print john.email

结果


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐