初级篇

  • 面向过程:根据业务逻辑从上到下写垒代码

  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可

  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

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

  • 封装:将内容封装到某处,从某处调用被封装的内容;

  • 继承:子类可以继承父类的所有内容,分为单继承和多继承;

    • 当类是经典类(不继承object)时,多继承情况下,会按照深度优先方式查找,即左边一条道走到黑,一直到共同的父类,再去右边找;

    • 当类是新式类(默认继承object)时,多继承情况下,会按照广度优先方式查找,即左边到共同父类之前,再去右边找,直到共同父类;

  • 多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同。

2、创建类

  • class ClassName()--创建类,类的命名规则为驼峰法,每个单词的首字母必须大写;小写的名称指根据类创建的实例(对象);
  • Python2.7中创建类时,需要在括号内包含object,如class ClassName(object)
  • 类中的函数称为方法,有关函数的一切都适用于方法,唯一的差别在于调用方法的方式;
  • __init__()这是一个特殊的方法,称为构造方法,每当你根据类创建新的实例时,Python都会自动运行它;开头和末尾各有两个下划线,这是一种约定,旨在避免默认方法和普通方法发生名称冲突;
class Dog():
    '''一次模拟小狗的简单尝试'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age
    def sit(self):
        '''模拟小狗被命令时蹲下'''
        print(self.name.title() + ' is now sitting.')
    def roll_over(self):
        '''模拟小狗被命令时打滚'''
        print(self.name.title() + ' rolled over.')
my_dog = Dog('holiday',3)
print("My dog's name is " + my_dog.name.title() + '.')
print("My dog's age is " + str(my_dog.age) + '.')
#用句点法来调用Dog类中定义的任何方法
my_dog.sit()
my_dog.roll_over()

3、类中的每个属性都要有初始值,哪怕这个值是0或空字符,在有些情况下,可以设置默认值,在__init__()内指定初始值,如果你对某个属性这么做了,就无需包含为它提供初始值的形参。

  • 三种方法修改属性值:1、直接修改;2、通过方法修改;3、通过增量修改
#创建一个餐馆类,并修改属性值
class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.number_served = 0    #设置属性默认值
    def describe_restaurant(self):
        print("The name of restaurant is %s."%self.restaurant_name)
        print("The cuisine type of restaurant is %s."%self.cuisine_type)
        print("[%s] people have dined in this restaurant."%self.number_served)
    def set_number_served(self,number):  # 2通过方法修改属性值
        self.number_served = number
    def increment_number_served(self,increment_num):  #3通过增量修改属性值
        self.number_served += increment_num
        '''这个增量就是餐馆每天的就餐人数'''
        print('I think the restaurant serves %s people a day.'%increment_num)
    def open(self):
        print("The restaurant is open!")
restaurant = Restaurant('KFC','fast food')
restaurant.number_served = 10 #1直接修改属性值
restaurant.describe_restaurant()
restaurant.set_number_served(200)
restaurant.describe_restaurant()
restaurant.increment_number_served(300)
restaurant.describe_restaurant()
View Code

相关文章:

猜你喜欢
  • 2021-05-21
  • 2021-08-15
  • 2021-07-13
  • 2021-12-02
  • 2021-12-12
相关资源
相似解决方案