Python面向对象基础知识

面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用编程

类是一个模板,模板中包装了多个“函数”供使用(能够讲多函数中公用的变量封装到对象中)函数

对象,根据模板建立的实例(即:对象),实例用于调用被包装在类中的函数spa

面向对象的三大特性:封装、继承、多态code

类的成员:字段、方法和属性对象

 

其中字段: 普通字段、静态字段blog

方法:普通方法、类方法、静态方法继承

属性:普通属性内存

注: 全部成员中,只有普通字段的内容保存对象中,即:根据此类建立了多少个对象,在内存中就有多少个普通字段。而其余的成员,则都保存在类中,即:不管对象的多少,在内存中只建立一份。get

1、字段it

 

class Student:
    #静态字段
    name='lucy'
    def __init__(self,name):
        #普通字段
        self.name = name
#直接访问普通字段
obj = Student('lily')
print obj.name


#直接访问静态字段
print Student.name

 

普通字段经过对象来访问,静态字段经过类访问

静态字段在内存中只保存一份

普通字段在每一个对象中都要保存一份

应用场景: 经过类建立对象时,若是每一个对象都具备相同的字段,那么就使用静态字段

 

二:方法

普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self;

类方法:由类调用;至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;

静态方法:由类调用;无默认参数;

class Student:
    def __init__(self,name):
        self.name = name
    def getName(self):
        print  self.name
        print '普通方法'
    @classmethod
    def class_func(cls):
        '''定义类方法,至少有一个cls参数'''
        print '类方法'
    @staticmethod
    def static_func():
        '''定义静态方法,无默认参数 '''
        print '静态方法'
#调用普通方法
stu = Student('lily')
stu.getName()
#调用类方法
Student.class_func()
#调用静态方法
Student.static_func()

对于全部的方法,均属于类,因此,在内存中也只保存一份。

方法调用者不一样、调用方法时自动传入的参数不一样。

相关文章
相关标签/搜索