面向对象(一):定义类,创建__init__()方法,创建类的成员并访问

本文介绍了面向对象编程的基本概念,包括类和对象的定义。通过实例展示了如何创建类,使用__init__()初始化方法,以及创建和访问类的成员(实例方法和数据成员)。详细讲解了实例方法的定义与调用,以及类属性和实例属性的创建与访问方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写的小程序,都是按照功能需求的顺序来设计程序,这种被称为“面向过程”的编程。

还有一种程序设计方法,就是把数 据和对数据的操作用一种叫“对象”的东西包裹起来。这种被称为“面向对象”的编程,适合于较大型的程序开发。

面向对象编程有2个重要的概念:类和对象。
类就是一组相似事物的统称,是一种抽象的类型,而对象是这种类型的实例。比如,“笔”可以看成一个类,“一支圆珠笔”是“笔”这种类型的对象。

(1)类的定义和使用

(1.1)类的定义
class ClassName:#类名采用大写字母开头
‘’‘类的帮助信息’’’
statement #类体,说明方法、属性等
案例:

class Geese:#class+类名(首字母大写),用来创建类
    '''大雁类'''#类的帮助信息
    pass #暂时没想好属性和方法,所以用语句pass,表示一个空的代码块
onegeese=Geese() #类名加圆括号()的形式可以创建一个类的实例,也就是对象‘一只大雁’。创建类的实例的语句为:ClassName(parameterlist)
print(onegeese)
运行结果为:
<__main__.Geese object at 0x0000000002F062B0>

意思是说,onegeese是__main__模块中Geese类的一个对象,后面的一串十六进制的数字是这个对象的内存地址。

(1.2)创建__init__()方法
案例

class Geese:
    '''大雁类'''
    def __init__(self):#定义构造方法。self必须为第一个参数,用来表示指向实例本身的一个引用,通过它可以访问类中的属性和方法。
        print('大雁类')
onegeese=Geese() #创建一个大雁类的实例
#运行结果:大雁类。

本代码中,我们只是创建了一个实例onegeese并没有输出任何信息,由此可见,当我们创建了一个类的实例时,会自动执行构造方法,输出‘大雁类’。

案例

class Rose:
    '''玫瑰类'''
    def __init__(self,leaf,flower):#定义构造方法。self必须为第一个参数.
        print('玫瑰,具有以下特征:')
        print(leaf) #叶片
        print(flower) #花朵
leaf1='它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。'#说明叶片的特征
flower1='花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等'
redrose=Rose(leaf1,flower1)#创建一个玫瑰类的实例
运行结果为:
玫瑰,具有以下特征:
它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。
花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等

(1.3)创建类的成员并访问

类的成员包括实例方法和数据成员两部分,实例方法对应方法,数据成员对应属性。
(1.3.1)创建实例方法并访问
def functionName(self,parameterlist)
block #方法体
注意:参数self 是必须的且为第一个参数。若还需要传递其他参数,则在self后添加。

创新了实例方法后,类的实例就可以访问它:
instanceName.functionName(parametervalue)
案例

class Rose:
    '''玫瑰类'''
    def __init__(self,leaf,flower):#定义构造方法。self必须为第一个参数.
        print('玫瑰,具有以下特征:')
        print(leaf) #叶片
        print(flower) #花朵

    def mean(self,sign):#定义实例方法
        print('玫瑰代表着:\n',sign)
        
leaf1='它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。'#说明叶片的特征
flower1='花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等'
sign1='“玫瑰”一词原意是指红色美玉。长久以来,玫瑰就象征着美丽和爱情。'

redrose=Rose(leaf1,flower1)#创建一个玫瑰类的实例
redrose.mean(sign1)#调用实例方法:类的实例名.实例方法名(参数值)
运行结果为:
玫瑰,具有以下特征:
它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。
花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等
玫瑰代表着:
 “玫瑰”一词原意是指红色美玉。长久以来,玫瑰就象征着美丽和爱情。

(1.3.2)创建数据成员并访问
数据成员也称为属性,分为类属性和实例属性。

其中,类属性定义在类中,并且在方法体的属性,可以在所有实例之间共享值用类名.属性名的形式进行调用。

对于上面(1.3.1)的案例,可以用类属性编写代码:

class Rose:
    '''玫瑰类'''
    leaf='它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。'#定义类属性(叶片)
    flower='花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等。'#定义类属性(花朵)
    sign='“玫瑰”一词原意是指红色美玉。长久以来,玫瑰就象征着美丽和爱情。'#定义类属性(寓意)

    def __init__(self):#定义构造方法
        print('玫瑰,具有以下特征:')
        print(Rose.leaf) #类名.属性名以调用类属性(叶片)
        print(Rose.flower) #调用类属性(花朵)
        print('玫瑰代表着:\n',Rose.sign) #调用类属性(寓意)
    
redrose=Rose()#创建一个玫瑰类的实例
玫瑰,具有以下特征:
它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。
花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等。
玫瑰代表着:
 “玫瑰”一词原意是指红色美玉。长久以来,玫瑰就象征着美丽和爱情。

**对于上面(1.3.1)的案例,还可以用实例属性编写代码:

实例属性定义在类中,并且在方法体的属性,只作用于当前实例

案例:

class Rose:
    '''玫瑰类'''
    def __init__(self):#定义构造方法
        self.leaf='它的叶片为椭圆形,上面具有皱纹,颜色为深绿色,背面上长有尖刺。'#实例属性(叶片)
        self.flower='花朵开放是在4-5月份,花朵单生在枝条顶端,颜色比较丰富,具有紫色、白色、红色等。'#实例属性(花朵)
        self.sign='“玫瑰”一词原意是指红色美玉。长久以来,玫瑰就象征着美丽和爱情。'#实例属性(寓意)
        print('玫瑰,具有以下特征:')
        print(self.leaf )#访问实例属性(叶片)
        print(self.flower) 
        print('玫瑰代表着:\n',self.sign)   
redrose=Rose()#创建一个玫瑰类的实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值