**python类类型的部分知识点:**1.基本知识 2。魔法方法
一.基本知识
当我们需要使用多个相似的数据时,单个的创建是比较费时和困难的。所以才引入了类这个概念。它可以将多种不同的数据封装到一个类中,便于我们进行各种不同的操作,如多个数据之间的变换,数据包含数据类型的不同,以及类方法的使用大大降低了代码的复杂性,提高了简洁性,降低了耦合度。
一.类的创建:
- class A:
-
pass
表示了一个类的创建,关键字class加类名,表明了你要创建一个类。pass是占位符,当你想创建一个 类,函数等,想不到具体操作时,可以使用pass表明。
二.类的属性
- class A:
-
story='sd' -
def __init__(self,name): -
self.name=name -
def function(self): -
pass - a=A('dk')
- A.lise=5
- a.k=5
- del a.name
上面写了3种构造函数的方法,1.直接在类中表述 2.在类中定义一个构造函数__init__()方法,利用在实现属性的动态构造,实现了一个实例一种不同的属性,在构建时必须要传参。否则会报错。一个函数中可以有多种构造函数,但在构建实例时调用的构造函数只能有一个3.在定义类的外面定义类的属性,在外面定义属性,可以定义类的属性也可以定义实例属性。用这种方法可以动态的增加属性。但不建议使用这种方法,容易造成代码混乱。
属性的删除:del +实例名 del+实例.属性 分别用于删除实例和删除实例属性
二 类封装:
在类中所创建的函数或者属性之前加__符,表示该段定义的内容属于私密内容,不能由用户使用基本调用方法调用和改变。
- class A:
-
story='sd' -
__simi=7 -
def __init__(self,name): -
self.name=name -
def function(self): -
pass - a=A('dk')
- A.lise=5
- a.k=5
- del a.name
- print(a._A__simi)
在属性和方法名之前加入__的段落不能用基本方法调用,可以在类中定义新的类函数来调用,__在外部不可调用但在类内部可以调用。
3.继承
class 四.魔法方法:
- class A:
-
story='sd' - class b(A):
-
pass - a=b()
- 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
分别用于查找属性,设置属性,进行了解就够了,实用性不强。