python面向对象程序设计实验总结_Python面向对象程序设计总结

一、总结  图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)


版权声明:本文为weixin_36399446原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。