Python篇----面向对象程序设计(二)(属性和方法篇)

本文详细阐述了Python中对象的属性与方法的区别,通过实例展示了如何定义和使用属性及方法,包括隐藏属性和方法的使用,同时介绍了构造函数与析构函数的作用。

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


1 属性与方法的详述


    (1)方法是对象(类的实例化)所拥有的一些功能。例如,对象bad_man(坏男人)的方法是打女人,对象good_man(好男人)的方法是保护女人。

    属性,经常和方法混淆来讲,但是区别很大:

  • 属性是静态的概念,方法是动态的概念

  • 属性代表对象的数据,方法代表对象的操作

    

   (2)属性的创建,代码如下:

#构建类
class man:
    print "man"

#实例化(对象)
bad_man = man()

#查看bad_man中有哪些属性
print bad_man.__dict__

#给一个实例添加属性,将bad_man的头发hair设置为yellow
bad_man.hair = "yellow"

#查看bad_man中是否出现属性
print bad_man.__dict__

#bad_man中的属性不会影响其他实例的属性,可用print打印查看
good_man = man()
print good_man.__dict__

#查看对象bad_man所属类的属性
print bad_man.__class__.__dict__

#给bad_man所属的类添加属性。绝大多数的男人,都是有JJ的
bad_man.__class__.body = "have JJ"

#再次查看对象bad_man所属类的属性
print bad_man.__class__.__dict__

#查看对象good_man所属类的属性,验证bad_man所属类属性添加后带来的影响
print good_man.__class__.__dict__


总结:单个实例(对象)的属性之间相互独立,不互相影响。类的属性由该类下面的所有实例(对象)共享。


操作截图:


    (3)方法的创建,代码如下:

#构建类,并添加方法eat
class man:
    def eat(self):         #self是Python规定的第一个参数,不许修改。所有的实例共享这个方法,
                           #self,如同C++中的this,不具备其他任何含义
        print "都需要吃饭"
    print “man”

#实例化
good_man = man()

#good_man调用eat()方法
good_man.eat()

#其他调用方法
man().eat()


   (4)隐藏属性和隐藏方法,代码如下:

#隐藏方法,不能在类的外部调用,在方法前加下划线
class man:
    def __eat(self):
        print "All man eat!"

#检验,会报错
man().__eat()

   (5)其他常用的方法:

  • 构造函数,__init__(self),在实例化的时候就被调用,初始化。init代表建立

  • 析构函数,__del__(self),对象在执行到最后的时候,需要释放这个对象。del代表释放



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值