python课堂随笔_面向对象

面向对象的两大组成部分

        类 :只是一个模糊的概念

        对象:具体存在的值

类的组成:

        类名:类的名字(变量名、函数名、类名都是标识符,命名方式一致)

        类的属性:类里面的变量(init方法里面,带self的变量)

        类的方法:类里面的函数

类的使用:

1.定义一个类    class  类名():

2.实例化对象(创造一个具体的值取调用里面的属性或者方法)

 

类里面的方法必须调用之后才会执行

        init方法有了对象之后会自动执行

self的功能

        1.self就是当前对象本身(相当于这个对象在类里面的形参)

类的创建

class 类名()

        def  __init__(self,形参1,形参2)

                self.属性名1 = 属性值1(形参1)

                self.属性名2 = 属性值2(形参2)

        def  自定义的函数名(self):

                这个函数的具体代码

实例化对象

对象名 = 类名(属性值1,属性值2)

 

hasattr(对象名,“属性名”)        判断属性是否存在

getattr(对象名,“属性名”)        得到属性值,没有则报错

setattr(对象名,“属性名”,“属性值”)                设置属性值,有则改无责增

delattr(对象名,“属性名”)        删除属性

class Person(object):

    def __init__(self,name,age,sg,tz):
        
        self.name = name

        self.age = age

        self.sg = sg

        self.tz = tz

    def play(self):

        print(f"{self.name}在打游戏")

    def study(self):

        print(f"{self.name}在学习")

对象关系方法

issubclass(类1,类2)        判断第二个类是否是第一个类的父亲

isinstance(对象,类型)        判断这个对象是否属于后面的类

is        判断对象和类型的时候不考虑继承关系

isinstance        考虑继承关系

 

魔法方法: 不需要调用,满足情况自动执行

命名方式: __方法名__()

__new__

         场景:在对象要被实例化的时候执行

         功能:实例化对象

__init__

         场景:对象被实例化之后执行

         功能:给对象初始化属性值

__del__

         场景:对象在内存中被释放的时候自动执行

         功能:删除这个对象

__str__

         场景:对象被实例化之后执行

         功能:修改print打印对象的样子

__repr__

         场景: 打印对象的时候执行 (修改直接引用对象时候的返回结果)

         功能: 修改打印对象时候的返回值

注意:返回值都必须是字符串类型

class Lei(object):

    def __new__(cls, *args, **kwargs):
        print("new , 创建对象")
        """
        由于子类和父类的方法名一致,覆盖了原有功能
        解决:super().方法名
        cls:代指的当前类
        """
        return super().__new__(cls)

    def __init__(self, name):
        self.name = name

    def __str__(self):
        return 'hello cls28!'

    def __repr__(self):
        return "马上放假了,真开心"

    def __del__(self):
        print("我要走了")


Adam = Lei("Adam")
print(Adam.name)

 

单例模式: 只有一个实例化对象的模式

(比如只需要一个对象作为管理员存在的场景)

对象由new方法进行实例化,因此如果只想要实例化一个对象,我们需要对new方法进行限制

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值