Python高级内容--面向对象(1)

这篇博客介绍了Python的面向对象编程,包括类的定义、构造函数`__init__`、类方法`@classmethod`、静态方法`@staticmethod`的使用,以及实例变量和类变量的区别。通过示例展示了如何创建和调用这些方法,并探讨了面向对象的三大特性:继承、封装和多态。此外,还讨论了Python中类和对象的属性访问以及成员可见性。
摘要由CSDN通过智能技术生成

Python高级内容–面向对象(1)
下面包含了一些python面向对象的一些基本和更高级的内容,代码都有相应的注释。
*

第一个模块

class student():    #一个模块最好只写一个类
    name = '111' #类变量
    age = 0
    sum = 0
    def __init__(self,name,age):  #构造函数--传入参数并初始化
        self.name = name
        self.age = age
        #print(student.sum)  #由于下面有两个实例,会运行两次,即打印两个sum
        #print(self.__class__.sum)  #效果同上

    def printer(self):
        print('name: '+self.name)
        print('age '+str(self.age))
        self.xxx()    #内部调用实例方法的例子

    @classmethod       #装饰器,使得下面的psum成为类方法,不可以访问实例变量,可以访问类变量,下同
    def psum(cls):
        cls.sum += 1
        print('now we have:')
        print(cls.sum)


    @staticmethod        #静态方法,与类和对象的关联性不强,和函数几乎无异
    def add(x,y):
        print('this is the static method')


    def xxx(self):
        pass

    #面向对象的三大特性:继承,封装,多态
    #继承--避免定义重复的方法  class a(b)  a是b的子类
    

第二个模块

from PY2 import student #import会把PY2先执行一次,所以PY2最好没有class之外的代码
print(student.name)    #类变量


s2 = student('456',19)
s1 = student('123',18)


print(s1.name)        #实例变量
s1.psum()      #调用类方法,外部调用
student.add(1,2)     #调用静态方法


print(s2.name)           #实例变量
student.psum()          #调用类方法  两种方式效果一样(the latter is better)
#s1.__init__()        主动和被动各调用一次
print(s1.__dict__)     #打印实例变量

#使用方法来行使功能,保证了外部只能调用方法来进行修改,在方法本身的限制下相对于直接修改变量更加安全--封装
#进一步地 成员(变量和方法)的可见性  publicprivate-->无法在外部进行修改
#默认为public,"__"私有化,右边再次“__“会去私有化
#但是其实可以更换变量名再次读取私有变量在,所以python其实没有所谓的私有变量
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

It is a deal️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值