python 类 笔记 | 青训营

106 阅读3分钟

**python类类型的部分知识点:**1.基本知识 2。魔法方法

一.基本知识

当我们需要使用多个相似的数据时,单个的创建是比较费时和困难的。所以才引入了类这个概念。它可以将多种不同的数据封装到一个类中,便于我们进行各种不同的操作,如多个数据之间的变换,数据包含数据类型的不同,以及类方法的使用大大降低了代码的复杂性,提高了简洁性,降低了耦合度。

一.类的创建:

  1. class A:
  2.      pass
    

表示了一个类的创建,关键字class加类名,表明了你要创建一个类。pass是占位符,当你想创建一个 类,函数等,想不到具体操作时,可以使用pass表明。

二.类的属性

  1. class A:
  2.     story='sd'
    
  3.     def  __init__(self,name):
    
  4.         self.name=name
    
  5.     def function(self):
    
  6.         pass
    
  7. a=A('dk')
  8. A.lise=5
  9. a.k=5
  10. del a.name
上面写了3种构造函数的方法,1.直接在类中表述 2.在类中定义一个构造函数__init__()方法,利用在实现属性的动态构造,实现了一个实例一种不同的属性,在构建时必须要传参。否则会报错。一个函数中可以有多种构造函数,但在构建实例时调用的构造函数只能有一个3.在定义类的外面定义类的属性,在外面定义属性,可以定义类的属性也可以定义实例属性。用这种方法可以动态的增加属性。但不建议使用这种方法,容易造成代码混乱。

属性的删除:del +实例名 del+实例.属性 分别用于删除实例和删除实例属性

二 类封装:

在类中所创建的函数或者属性之前加__符,表示该段定义的内容属于私密内容,不能由用户使用基本调用方法调用和改变。

  1. class A:
  2.    story='sd'
    
  3.    __simi=7
    
  4.    def  __init__(self,name):
    
  5.        self.name=name
    
  6.    def function(self):
    
  7.        pass
    
  8. a=A('dk')
  9. A.lise=5
  10. a.k=5
  11. del a.name
  12. print(a._A__simi)
在属性和方法名之前加入__的段落不能用基本方法调用,可以在类中定义新的类函数来调用,__在外部不可调用但在类内部可以调用。

3.继承

class 四.魔法方法:

  1. class A:
  2.    story='sd'
    
  3. class b(A):
  4. pass
    
  5. a=b()
  6. print(a.story)
在定义类时在后面加个括号,括号内写上父类名,子类向父类中继承了属性和方法,当一个属性和方法在本类找不到时会自动向父类中寻找,当然不可避免地会出现冲突的情况,所以我们又利用父类在()中从左到右的顺序表面继承顺序。super()函数可以进一步确定继承的方法和函数
1.@property:

定义调用私密属性的函数,可以让其可以直接展示,但不可直接进行改变。

2.@setter

和property连用,函数名相同。可以让调用的私密属性正常改变。,不建议使用。

3。@delatter

和property连用,函数名相同。可以让调用的私密属性正常被删除,可以在其中添加一些日志信息。

4.init(self)

构造函数,在将类实例化自动调用,用于传递参数的同时构造实例属性。

5.new()self

用于为实例分配内存地址的函数,在不定义的时候,一般使用父类的__new__函数,object是所有类的父类。这是关于继承的知识点较为靠后。

6.call()

这个函数可以让类和实例像函数一样调用,这个函使用之前数必须要定义。父类中未定义。

7.getattr,hasattr,setattr

分别用于查找属性,设置属性,进行了解就够了,实用性不强。