Django编程是采用面向对象的编程,要想学好Django,尤其是Django的优秀框架DRF,必须掌握好Python的面向对象基本知识。
类(Class)是用来描述具有相同属性(Attribute)和方法(Method)对象的集合。对象(Object)是类(Class)的具体实例。比如每个用户都有名字和地址,这是他们共同的属性。这时我们就可以设计一个用户类, 用于记录用户的名字和地址,并自定义方法打印出他们的名字和地址。
属性(Attribute): 类里面用于描述所有对象共同特征的变量或数据。比如用户的名字和地址。
方法(Method): 类里面的函数,用来区别类外面的函数, 用来实现某些功能。比如打印出用户的名字和地址。
- # 创建一个用户类
- class User(object):
- # 定义用户属性,初始化方法
- def __init__(self,name,address):
- self.name = name
- self.address = address
-
- # 定义打印用户信息的方法
- def show(self):
- print("{}的地址是:{}".format(self.name,self.address))
在上面,我们只定义了一个抽象的类,并没有创建存储空间。只有当我们完成类的实例化(Instance)时,才会创建一个具体的对象(Object),并为之分配存储空间。所以对象(Object)是类(Class)的一个实例。
要创建一个具体的用户对象(Object),还需要如此调用:
- user1=User("王小明","北京西城区")
- user1.show()
在这个案例中,User是类,user1是我们创建的具体的用户对象。当我们输入上述代码时,Python会自动调用默认的__init__初始构造函数来生成具体的对象。关键字self是个非常重要的参数,代表创建的对象本身。
当你创建具体的对象后,你可以直接通过user1.name和user1.address来分别获取用户的名字和地址,也可以通过user1.show()来直接打印用户的名字和地址。
二、类变量(class variables)与实例变量(instance variables)
三、类方法(Class method)
四、类的私有属性(private attribute)和私有方法(private method)
五、@property的用法与神奇之处
六、类的继承(Inheritance)
七、super()关键字调用父类方法
八、静态变量(static variable)和静态方法(static method)