python类和对象相关知识

私有成员

  1. 概念: 私有成员 只能在 本类 内部使用
    好处:
    1.保护私有属性不被随意修改
    2.提高封装性,将用户不需要使用的功能设置为私有, 用户只需要关心公有的.

    语法:
    在成员名前面加 两个 下划线, 这样的成员就是私有成员

     self.__属性名 = 值
     def __方法名(self):
         pass
    

__del__方法

  1. 调用时机: 对象空间 被销毁的时候, 自动调用 对象上的 del 方法

    class 类名(object):

     def __del__(self):
         # 对象被销毁的时候自动调用执行, 清理对象占用的资源 或者 明确对象的销毁时机
         pass
    
  2. 对象的销毁时机
    a. 脚本执行结束, python占用的所有内存资源都被释放, 包括对象空间(python垃圾回收机制)
    b. 对象的没有被任何变量引用的时候, 对象被当做垃圾回收了
    手动清空对象空间:
    del 对象变量
    对象变量 = None

继承(重点)

  1. 概念: 子类继承父类, 直接使用父类上的成员(属性和方法)
    语法:
    class 子类名(父类名): # 默认继承 object
    # 子类新增的成员
    pass

    注意: 私有成员不能被继承

  2. 继承的特征
    a. 单继承
    b. 多层继承
    c. 多继承(骡子 同时继承 马和驴)
    d. 重写
    概念: 子类中定义了与父类相同名字的成员, 即子类重写父类成员
    属性重写
    方法重写
    方法重写:
    当父类上的方法不满足子类需要,但是子类不得不使用该方法,则在子类中重写父类方法.

         例如: 子类和父类 初始属性不同, 需要重写 __init__ 方法
     调用父类上的方法:
         super().父类方法名([实参])
         super(子类名,self).父类方法名([实参])
         
     例如:
         class Goods(object):
             def __init__(self,name,price):
                 self.name = name
                 self.price = price
         
         
         class Phone(Goods):
         	def __init__(self,name,price,brand,size,color):
                 #self.name = name
                 #self.price = price
                 super().__init__(name,price) # 调用父类上的方法
                 self.brand = brand
                 self.size = size
                 self.color = color
    

    e. 多态(了解): 继承,重写, 相同的方法实现的功能不同, 这就是多态

  3. 查看对象信息
    type(对象) : 查看对象的类名(类型)
    dir(对象) : 查看对象上的所有的属性(属性和方法都称为属性)
    isinstance(对象,类名): 判断对象是否是指定类的实例(对象)

类属性和实例属性

  1. 实例属性: 对象上的属性
    绑定方式:
    动态: 对象变量.属性名 = 值
    初始化方法中绑定: self.属性名 = 值

  2. 类属性: 类上的属性
    绑定方式:
    动态: 类名.属性名 = 值
    在类中绑定:
    class 类名(object):
    类属性名 = 值

     访问:
         类名.类属性名
         
         
     作用: 将所有对象共享的属性设置为类属性, 所有的对象都能使用, 从而节约内存空间.
    

类方法和静态方法

class 类名(object):
# 实例方法
def 方法名(self,[形参]):
pass

# 类方法
@classmethod
def 类方法名(cls,[形参]):
    # cls == class 调用的那个类
    pass

# 静态方法
@staticmethod
def 静态方法名([形参]):
    pass

#调用
类名.类方法名()
类名.静态方法名()

Python中的类(Class)是一种定义对象属性和方法的模板或蓝图,而对象(Object)是根据这个模板创建的具体实例。以下是Python类和对象的一些核心知识点: 1. 类的定义:使用`class`关键字来定义一个类,后面跟着类名和一个冒号,然后缩进编写类的内容。 ```python class MyClass: def __init__(self, value): self.my_attribute = value # 定义属性 def my_method(self): print("这是一个方法") # 定义方法 ``` 2. 对象的创建:通过类名后面跟括号来创建对象,括号内可以传递参数初始化对象的属性。 ```python my_object = MyClass(10) # 创建MyClass的一个实例,传入初始值10 ``` 3. 属性和方法:对象的属性是对象的特征或数据,方法是对象可以执行的操作。在类定义内部使用`self`关键字引用当前对象的属性和方法。 4. 继承(Inheritance):允许创建子类,子类继承父类的属性和方法,还可以定义自己的属性和方法或重写父类的。 ```python class ChildClass(MyClass): def __init__(self, value, extra_value): super().__init__(value) # 调用父类的构造方法 self.extra_attribute = extra_value # 添加额外的属性 def another_method(self): print("这是一个新方法") # 添加新的方法 ``` 5. 私有属性和方法:在Python中,通过在属性或方法名前加双下划线`__`来定义私有属性和方法,它们只能在类的内部访问。 ```python class SecretClass: def __private_method(self): print("这是一个私有方法") ``` 6. 魔术方法(Magic/Dunder Methods):以双下划线开头和结尾的方法(如`__init__`, `__str__`, `__repr__`等),它们用于实现内置类型的特殊行为。 7. 类变量和实例变量:类变量是属于类的变量,所有实例共享这个变量。实例变量是每个对象独自拥有的变量,每个实例都有自己的一份拷贝。 8. 静态方法和类方法:通过`@staticmethod`或`@classmethod`装饰器定义的方法,静态方法不接收实例和类的隐式参数,而类方法接收类作为第一个参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值