Python面向对象程序设计总结

一、总结
Python面向对象程序设计总结_第1张图片
图1 Python类主要内容思维导图

二、补充说明

1、类只负责刻画,不负责执行

类是显示生活的一种刻画,是一种将现实抽象之后形成的模板,以构造对象的方式具体去实现类的模

2、构造函数__init__只能返回NoneType类型的内容,否则会报错

3、我们以点运算符调用对象的变量的时候,系统会先检查对象是否有该名称的变量,如若没有则检

查该对象所属类是否有该变量,再没有则检查该类的父类是否有,流程示意图为:对象—>类—>父类

4、"对象.dict"以字典的形式告诉我们对象的实例变量有哪些

5、"类.dict"以字典的形式告诉我们类所拥有的类变量以及实例方法、类方法及静态方法等

6、怎么在实例方法中调用类变量?self.class.class_variables

7、Python通过在变量与方法的前面添加双下划线实现其私有化,这种私有化是通过修改其名称实现

的,如果我们在名称后面也添加双下划线,类似于__init__,将无法实现私有化。

8、怎么将参数从子类传向父类并进行__init__赋值?
例:Human为父类,Student为子类

子类中:

    def __init__(self,school,name,age):
    	self.school = school
    	# Human.__init__(**self**, name, age), 父类调用实例方法要将对象传过去
    	super(Student, self).__init__(name, age)

父类中:
def init(self, name, age):
self.name = name
self.age = age

9、在导入多个模块时,先写标准库模块的导入,再空一行写你自己编写的模块的导入,这样方便我

们在导入大量模块的时候认清楚各个模块的来源

10、类的实例
实例:

   class Restuarant():
        '''饭馆类'''
    
            name = ''
            number_served = 0
        
            def __init__(self, restaurant_name, cuisine_type, number_served=0):
                self.__restaurant_name = restaurant_name
                self.cuisine_type = cuisine_type
                self.number_served = number_served
        
            def describe_restaurant(self):
                print("The restaurant' name is " + self.__restaurant_name.title())
                print("Our cuisine_type is " + self.cuisine_type.title())
        
            def __open_restaurant(self):
                print("The restaurant is opening now!")
        
            @staticmethod
            def increment_number(cls):
                cls.number_served += 1
                print("类方法")
        
        print(Restuarant.__dict__)
        restuarant1 = Restuarant("Name1", "Chinese")
        restuarant2 = Restuarant("Name2", "English", 2)
        restuarant3 = Restuarant("Name3", "Spanish", 3)
        print(restuarant1.number_served)
        restuarant1.__init__("Name3", "Spanish", 3)
        restuarant1.describe_restaurant()
        restuarant1.__restaurant_name = "XX"
        print(restuarant1.__restaurant_name)

你可能感兴趣的:(python随笔)