python面向对象概念及练习题

合集下载

python面向对象练习题

python面向对象练习题

python面向对象练习题Python面向对象练习题Python是一种高级编程语言,以其简洁、易读、易学和强大的功能而受到广泛欢迎。

其中,面向对象编程(Object-Oriented Programming,简称OOP)是Python的一个重要特性,它能够帮助我们更好地组织和管理代码。

在学习Python的过程中,练习题是一个很好的方式来巩固所学知识。

下面我将分享一些有关Python面向对象编程的练习题,希望对你的学习有所帮助。

1. 创建一个名为"Person"的类,该类具有以下属性和方法:- 属性:姓名(name)、年龄(age)、性别(gender)- 方法:打印个人信息(print_info)通过创建一个"Person"类的实例,你可以输入一个人的姓名、年龄和性别,并使用"print_info"方法打印出该人的信息。

2. 创建一个名为"Rectangle"的类,该类具有以下属性和方法:- 属性:宽度(width)、高度(height)- 方法:计算面积(calculate_area)、计算周长(calculate_perimeter)通过创建一个"Rectangle"类的实例,你可以输入一个矩形的宽度和高度,并使用"calculate_area"方法计算矩形的面积,使用"calculate_perimeter"方法计算矩形的周长。

3. 创建一个名为"BankAccount"的类,该类具有以下属性和方法:- 属性:账户名(account_name)、账户余额(balance)- 方法:存款(deposit)、取款(withdraw)、打印账户信息(print_info)通过创建一个"BankAccount"类的实例,你可以输入一个账户名和初始余额,并使用"deposit"方法存款,使用"withdraw"方法取款,使用"print_info"方法打印账户信息。

python面向对象设计 编程题

python面向对象设计 编程题

Python面向对象设计编程题一、题目描述在Python中,面向对象设计是非常重要的知识点。

面向对象设计的核心概念有类、对象、封装、继承和多态。

本编程题将涉及到这些核心概念,要求学员使用Python完成以下编程题目。

二、编程题目1. 定义一个名为Animal的类,该类具有属性:name、color和age,以及方法:eat()和sleep()。

eat()方法用于输出动物吃东西的动作,sleep()方法用于输出动物睡觉的动作。

2. 创建一个名为Dog的子类,继承自Animal类,该子类具有额外属性:breed,以及额外方法:bark()。

bark()方法用于输出狗狗叫的动作。

3. 创建一个名为Cat的子类,继承自Animal类,该子类具有额外属性:favorite_toy,以及额外方法:play()。

play()方法用于输出猫咪玩耍的动作。

4. 创建一个名为Zoo的类,该类具有一个属性:animals列表,以及方法:add_animal()和list_animals()。

add_animal()方法用于添加动物到动物园中,list_animals()方法用于列出动物园中所有动物的信息。

5. 在主程序中,实例化几只动物(包括狗狗和猫咪),将它们添加到动物园中,并列出动物园中所有动物的信息。

三、编程要求1. 在编写代码时,要合理使用面向对象设计的概念,包括类、对象、封装、继承和多态等。

2. 要求代码结构清晰,变量和方法的命名规范,注释完善。

3. 实例化动物和动物园时,可以使用用户输入进行交互,也可以直接在代码中给出具体的属性值。

4. 请确保代码能够正确运行,并输出正确的结果。

四、编程范例以下是一个示例的Python代码,展示了如何完成以上编程题目:```pythonclass Animal:def __init__(self, name, color, age): = nameself.color = colorself.age = agedef eat(self):print(f"{} is eating")def sleep(self):print(f"{} is sleeping")class Dog(Animal):def __init__(self, name, color, age, breed):super().__init__(name, color, age)self.breed = breeddef bark(self):print("Wang wang!")class Cat(Animal):def __init__(self, name, color, age, favorite_toy): super().__init__(name, color, age)self.favorite_toy = favorite_toydef play(self):print(f"{} is playing with {self.favorite_toy}")class Zoo:def __init__(self):self.animals = []def add_animal(self, animal):self.animals.append(animal)def list_animals(self):for animal in self.animals:print(f"{} - {animal.color} - {animal.age}")dog1 = Dog("Buddy", "Brown", 3, "Golden Retriever")cat1 = Cat("Whiskers", "White", 2, "Ball of yarn")zoo1 = Zoo()zoo1.add_animal(dog1)zoo1.add_animal(cat1)zoo1.list_animals()```以上代码定义了Animal类、Dog类、Cat类和Zoo类,实例化了一只狗狗和一只猫咪,并将它们添加到动物园中,最后列出了动物园中所有动物的信息。

python面向对象练习题(打印版)

python面向对象练习题(打印版)

python面向对象练习题(打印版)# Python面向对象编程练习题面向对象编程(OOP)是Python中的核心概念之一。

通过以下练习题,你可以加深对Python中类和对象的理解。

## 练习一:定义一个类1. 定义一个名为`Person`的类,包含以下属性:- `name`:姓名- `age`:年龄2. 为`Person`类添加一个初始化方法`__init__`,用于设置姓名和年龄。

3. 添加一个方法`greet`,用于打印问候语。

```pythonclass Person:def __init__(self, name, age): = nameself.age = agedef greet(self):print(f"Hello, my name is {} and I am{self.age} years old.")```## 练习二:继承和多态1. 定义一个`Student`类,继承自`Person`类。

2. 添加一个属性`student_id`来表示学生的学号。

3. 重写`greet`方法,使其打印出学生特有的问候语。

```pythonclass Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef greet(self):print(f"Hello, I am {}, a student of age {self.age} with ID {self.student_id}.")```## 练习三:封装1. 创建一个名为`Car`的类。

2. 包含属性:`make`(制造商),`model`(型号),`year`(年份)。

3. 为这些属性提供私有化处理,即在属性名前加上双下划线`__`。

python面向对象练习题

python面向对象练习题

python面向对象练习题Python是一种高级编程语言,广泛应用于各个领域。

在Python中,面向对象编程是一种重要的编程范式。

通过面向对象编程,可以更好地组织和管理代码,提高代码的可维护性和复用性。

本文将介绍几个Python面向对象的练习题,帮助读者巩固和提升自己的编程技巧。

一、创建一个学生类首先,我们来创建一个学生类(Student)。

学生具有姓名、年龄和性别三个属性,还具有一个显示学生信息的方法。

```pythonclass Student:def __init__(self, name, age, gender): = nameself.age = ageself.gender = genderdef display_info(self):print("学生信息:")print("姓名:", )print("年龄:", self.age)print("性别:", self.gender)```在以上代码中,通过`__init__`方法初始化学生对象的属性。

`display_info`方法用于显示学生信息。

二、创建一个矩形类接下来,我们创建一个矩形类(Rectangle)。

矩形具有宽度和高度两个属性,还具有计算面积和周长的方法。

```pythonclass Rectangle:def __init__(self, width, height):self.width = widthself.height = heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width + self.height)```在以上代码中,通过`__init__`方法初始化矩形对象的属性。

`area`方法用于计算矩形的面积,`perimeter`方法用于计算矩形的周长。

python面向对象程序设计简答题

python面向对象程序设计简答题

Python面向对象程序设计简答题一、面向对象程序设计的基本概念1.1 什么是面向对象程序设计?面向对象程序设计(Object-Oriented Programming,简称OOP)是一种编程范式,它将现实世界中的实体抽象为对象,对象之间通过消息传递进行交互,从而实现程序的功能。

1.2 面向对象程序设计的特点有哪些?面向对象程序设计的特点包括封装、继承、多态等。

其中,封装可以隐藏对象的内部状态,继承可以实现代码的复用,多态可以实现不同对象对同一消息作出不同的响应。

1.3 什么是类和对象?类是面向对象程序设计中的重要概念,它是对具有相似属性和行为的对象的抽象,用来描述对象的共同特征。

对象是类的一个实例,是具体的、有实际意义的实体。

二、Python中的面向对象程序设计2.1 Python中如何定义类?在Python中,可以使用关键字class来定义类。

类的定义包括类名、类的属性和方法。

类的属性是对象的特征,而类的方法是对象的行为。

2.2 Python中如何创建对象?在Python中,可以使用类名加括号的方式来创建对象。

如果有一个叫做Student的类,可以使用student = Student()来创建一个Student类的对象。

2.3 Python中如何定义类的属性和方法?在Python中,可以使用类的构造函数__init__方法来定义类的属性,使用def关键字来定义类的方法。

在方法的定义中,第一个参数通常是self,表示对象本身。

2.4 Python中如何实现继承?Python中可以使用子类继承父类的方式来实现继承。

在子类的定义中,使用class SubClass(BaseClass)的方式来指定父类,从而实现子类对父类的继承。

2.5 Python中如何实现多态?在Python中,可以通过函数的重写和多重继承的方式来实现多态。

当子类重写父类的方法时,可以实现不同对象对同一消息作出不同的响应,从而实现多态。

Python 试卷题目有答案 第9章 面向对象程序设计

Python 试卷题目有答案 第9章  面向对象程序设计

9-1 什么是面向对象?答:面向对象(Object Oriented)的英文缩写是OO,它是一种设计思想。

从20世纪60年代提出面向对象的概念到现在,它已经发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。

9-2 简述面向对象程序设计的特点。

答:面向对象程序设计具有三大基本特征:封装、继承和多态,下面分别描述。

1.封装封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常会对客户隐藏其实现细节,这就是封装的思想。

例如,用户使用计算机,只需要使用手指敲击键盘就可以实现一些功能,而无须知道计算机内部是如何工作的。

采用封装思想保证了类内部数据结构的完整性,使用该类的用户不能直接看到类中的数据结构,而只能执行类允许公开的数据,这样就避免了外部对内部数据的影响,提高了程序的可维护性。

2.继承继承是实现重复利用的重要手段,子类通过继承复用了父类的属性和行为的同时又添加了子类特有的属性和行为。

3.多态将父类对象应用于子类的特征就是多态。

比如创建一个螺丝类,螺丝类有两个属性:粗细和螺纹密度;然后再创建了两个类,一个是长螺丝类,一个短螺丝类,并且它们都继承了螺丝类。

这样长螺丝类和短螺丝类不仅具有相同的特征(粗细相同,且螺纹密度也相同),还具有不同的特征(一个长,一个短,长的可以用来固定大型支架,短的可以固定生活中的家具)。

综上所述,一个螺丝类衍生出不同的子类,子类继承父类特征的同时,也具备了自己的特征,并且能够实现不同的效果,这就是多态化的结构。

9-3 什么是__init__()方法?答:__init__()方法是一个特殊的方法,类似Java语言中的构造方法。

每当创建一个类的新实例时,Python都会自动执行它。

__init__()方法必须包含一个self参数,并且必须是第一个参数。

self参数是一个指向实例本身的引用,用于访问类中的属性和方法。

在方法调用时会自动传递实际参数self。

第六章python面向对象-编程测试练习题及答案解析精选全文完整版

第六章python面向对象-编程测试练习题及答案解析精选全文完整版

可编辑修改精选全文完整版第六章 python面向对象青少年编程知识练习题及答案解析一、单选题1、下列创建类,方法正确的是()A.Class food( ):B.Class Food():C.class Food()D.class Food():答案解析:D,创建类用class关键字,与类名中间隔一个空格,后面添加括号和冒号。

2、根据car()类创建实例对象,下列代码正确的是()A.Car=car()B.car=car()C.car=Car()D.Car=Car()答案解析:C,类名为大写Car(),对象名为小写的car。

3、在Car类中自定义speed方法,输出:行驶速度为60km/h,代码书写正确的是()A.B.C.D.答案解析:B,在类中定义方法,注意不要漏掉self和冒号。

4、以下代码创建了一个football对象:football=Ball(),调用football对象的play方法,下列选项正确的是()A.Football.play()B.football.Play()C.football.play()D.football.play答案解析:C,对象调用方法,对象名.方法名,不要忘记括号。

5、在Food类中创建eat方法,下列选项正确的是()A.Class Food():Def eat(self):B.class Food():def eat(self):C.class Food():def eat():D.class Food():def Eat(self)答案解析:B,创建类的关键字class,创建方法的关键字def。

6、以下代码创建了一个monkey对象:monkey=Animals(),调用monkey对象的name属性,下列选项正确的是()()D.monkey:name()答案解析:C,访问属性方法:对象名.属性名7、以传参的方式定义实例化方法时,参数之间用()符号进行分隔:A.分号;B.冒号:C.空格D.逗号,答案解析:D,参数属性之间用逗号分隔。

Python面向对象编程考试

Python面向对象编程考试

Python面向对象编程考试(答案见尾页)一、选择题1. Python面向对象编程中,下列哪个是类的属性?A. 类的方法B. 类的实例变量C. 类的类变量D. 类的构造函数2. 在Python中,以下哪个是创建对象的正确方法?A. 使用class关键字B. 使用object关键字C. 使用classname()构造函数D. 使用type()构造函数3. 在Python中,什么是封装?A. 将数据隐藏在对象内部B. 将方法隐藏在对象内部C. 将数据和方法都隐藏在对象内部D. 将对象隐藏在类内部4. 在Python中,下列哪个是继承的基本语法?A. class Parent:passB. class Parent:def method(self):passC. class Child(Parent):passD. class Child(Parent):def method(self):super().method()5. 在Python中,什么是多态?A. 不同类的对象对同一消息作出响应B. 同一类的对象对同一消息作出不同的响应C. 对象的状态不同对其响应也不同D. 对象的行为不同对其响应也不同6. 在Python中,什么是抽象类?A. 包含抽象方法的类B. 包含抽象属性的类C. 包含静态方法的类D. 包含私有方法的类7. 在Python中,什么是迭代器?A. 一个对象能够遍历另一个对象的内部元素B. 一个对象能够遍历自己的内部元素C. 一个对象能够遍历自己的内部元素和父类的内部元素D. 一个对象能够遍历所有对象的元素8. 在Python中,什么是装饰器?A. 一个函数,它接受一个函数作为参数并返回一个新的函数B. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数有相同的调用方式C. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数有不同的调用方式D. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数完全相同9. 在Python中,什么是生成器?A. 一个函数,它接受一个函数作为参数并返回一个新的函数B. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数有相同的调用方式C. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数有不同的调用方式D. 一个函数,它接受一个函数作为参数并返回一个新的函数,但新函数与原始函数完全相同,且新函数可以按需生成结果10. 在Python中,什么是属性?A. 对象的数据部分B. 对象的方法部分C. 对象的状态部分D. 对象的行为部分11. 什么是Python面向对象编程(OOP)的基本概念?A. 类和对象的概念B. 继承和多态C. 封装和抽象D. 以上都是12. 在Python中,什么是类(Class)?A. 一个蓝图或模板,用于创建对象B. 一个包含数据和方法的集合C. 一个函数D. 以上都不是13. 如何在Python中定义一个类?A. 使用关键字 `class`B. 使用关键字 `function`C. 使用关键字 `class_`D. 使用关键字 `object`14. 在Python中,什么是封装(Encapsulation)?A. 将数据和操作数据的代码捆绑在一起B. 将数据和操作数据的代码分别存放C. 将数据隐藏起来,只暴露必要的操作接口D. 将数据公开给外部直接访问15. 在Python中,什么是继承(Inheritance)?A. 创建新类的过程B. 新创建的类可以继承另一个类的属性和方法C. 新创建的类可以覆盖另一个类的属性和方法D. 以上都不是16. 在Python中,什么是多态(Polymorphism)?A. 同一个接口可以被不同的对象以不同的方式实现B. 不同的对象对同一消息作出响应C. 对象之间的通信D. 以上都不是17. 在Python中,如何定义一个方法(Method)?A. 使用关键字 `def` 关键字定义一个函数B. 使用关键字 `def` 关键字定义一个类C. 使用关键字 `def` 关键字定义一个对象D. 使用关键字 `def` 关键字定义一个模块18. 在Python中,什么是抽象类(Abstract Class)?A. 一个包含抽象方法的类B. 一个不能实例化的类C. 一个包含具体方法的类D. 以上都不是19. 在Python中,如何实现继承和多态?A. 使用 `super()` 函数调用父类的方法B. 使用 `super()` 函数调用子类的方法C. 使用接口或抽象类来定义共同的接口D. 使用鸭子类型(duck typing)来实现多态20. 在Python中,什么是命名空间(Namespace)?A. 一个存储变量和函数名的地方B. 一个存储类和模块名的地方C. 一个全局作用域D. 以上都不是21. 什么是Python面向对象编程?A. Python不具备面向对象编程的能力B. Python支持面向对象编程C. Python面向对象编程类似于其他面向对象编程语言D. Python面向对象编程仅适用于企业级应用22. 在Python中,以下哪个是面向对象编程的基本概念?A. 类和实例B. 函数式编程C. 面向过程编程D. 错误处理23. 在Python中,以下哪个是类的属性?A. 实例变量B. 类变量C. 私有变量D. 全局变量24. 在Python中,以下哪个是类的方法?A. 实例方法B. 类方法C. 面向过程的方法D. 面向对象的方法25. 在Python中,以下哪个是封装的概念?A. 将数据隐藏在对象内部B. 将数据暴露给外部直接访问C. 将代码分割成多个模块D. 将函数作为参数传递26. 在Python中,以下哪个是继承的概念?A. 创建一个新的类,它是已有的类的扩展B. 创建一个新的类,它是已有的类的子类C. 创建一个新的类,它与已有的类完全相同D. 创建一个新的类,它是已有的类的实例27. 在Python中,以下哪个是多态的概念?A. 同一个接口可以被不同的对象以不同的方式实现B. 同一个方法可以被不同的对象以不同的方式实现C. 同一个类可以被不同的对象以不同的方式实现D. 同一个属性可以被不同的对象以不同的方式访问28. 在Python中,以下哪个是抽象类的概念?A. 一个包含抽象方法的类B. 一个包含抽象属性的类C. 一个不能被实例化的类D. 一个用于定义接口的类29. 在Python中,以下哪个是Lambda函数的概念?A. 一个简单的匿名函数,可以在需要时立即定义B. 一个可以返回多个值的函数C. 一个用于循环的函数D. 一个用于排序的函数30. 在Python中,以下哪个是生成器的概念?A. 一个用于生成序列的函数B. 一个可以中断循环的函数C. 一个用于迭代的数据结构D. 一个用于异步操作的函数31. 以下关于Python面向对象编程的描述中,正确的是?A. Python支持类和继承B. Python使用class关键字来定义类C. Python的面向对象编程中,类可以直接实例化为一个对象D. Python的面向对象编程中,所有数据类型都是对象32. 在Python中,以下哪个是正确的类定义方式?A. class MyClass:passB. class MyClass:def my_method(self):passC. class MyClass(int):passD. class MyClass:@classmethoddef my_method(cls):pass33. 在Python中,以下哪个是正确的继承方式?A. 继承父类的所有属性和方法B. 继承父类的所有属性和方法,并可以重写C. 继承父类的所有属性和方法,但只能访问父类的方法D. 继承父类的所有属性和方法,但不能访问父类的方法34. 在Python中,以下哪个是正确的封装概念的描述?A. 封装是指将数据隐藏在对象内部,不允许外部直接访问B. 封装是指将数据隐藏在对象内部,但允许外部通过公共方法访问C. 封装是指将代码隐藏在函数内部,不允许外部直接访问D. 封装是指将代码隐藏在函数内部,但允许外部通过公共方法访问35. 在Python中,以下哪个是正确的多态概念的描述?A. 多态是指不同类的对象可以通过同一接口进行操作B. 多态是指相同类的对象可以通过同一接口进行操作C. 多态是指不同类的对象可以通过同一方法进行操作D. 多态是指相同类的对象可以通过同一方法进行操作36. 在Python中,以下哪个是正确的抽象类的描述?A. 抽象类不能实例化B. 抽象类不能包含具体的属性和方法C. 抽象类不能定义构造方法D. 抽象类不能被继承37. 在Python中,以下哪个是正确的接口的描述?A. 接口是一种特殊的类,它定义了类应该如何实现B. 接口是一种特殊的类,它定义了类应该如何使用C. 接口是一种特殊的类,它定义了类应该如何初始化D. 接口是一种特殊的类,它定义了类应该如何定义方法38. 在Python中,以下哪个是正确的继承树的概念?A. 继承树是一种树状结构,其中一个类可以有多个父类B. 继承树是一种线状结构,其中一个类可以有一个或多个父类C. 继承树是一种环状结构,其中一个类可以有多个父类D. 继承树是一种网状结构,其中一个类可以有多个父类39. 在Python中,以下哪个是正确的混合类型的描述?A. 混合类型是指可以将不同类型的元素放入同一个容器中B. 混合类型是指可以将不同类型的元素放入同一个数组中C. 混合类型是指可以将不同类型的元素放入同一个字典中D. 混合类型是指可以将不同类型的元素放入同一个集合中40. 在Python中,以下哪个是正确的迭代器的描述?A. 迭代器是一种可以从集合中每次取出一个元素的方式B. 迭代器是一种可以从列表中每次取出一个元素的方式C. 迭代器是一种可以从元组中每次取出一个元素的方式D. 迭代器是一种可以从字典中每次取出一个元素的方式二、问答题1. 请解释Python中的类和对象的概念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类名命名规范:满足大驼峰命名规则
3.
3
对象是类的具体表现形式,是实际存在的个体。(类是一系列事物的统称)
3
对象名 =类名()
3
对象的创建不限制数量,一个类可以创建任意个数的对象
4.
4
成员变量用于描述对象的固有状态或属性。
4.
class 类名:
def __Байду номын сангаасnit__(self):
self.变量名1 = 值1
self.变量名2 = None
4.3
对象名.变量名 = 值
4.4
公有变量在__init__方法中声明,每个对象都具有该变量
独有变量在创建对象后声明,只有当前对象具有此变量
定义对象的独有变量时,如果独有变量名与公有变量名相同,视为修改公有变量的值;如果独有变量名与公有变量名不相同,视为定义新的独有属性
类变量可以私有化
11
11
类方法是定义在类中,不属于某个具体对象的行为,被所有对象共同使用的行为
11
class 类名:
@classmethod
def方法名(cls,形参1,形参2,…):
方法体
11.3
类名.类方法名(实参1,实参2,…)(推荐)
对象名.类方法名(实参1,实参2,…)(不推荐)
11.4
类方法中不允许使用实例变量和实例方法
None含义是为空,表示没有具体的数据
4.5
取值:对象名.变量名
赋值:对象名.变量名 = 值
5.
5
成员方法用于描述对象的固有行为
5
格式一(无参方法):
class 类名:
def 方法名(self):
方法体
格式二(有参方法)
class 类名:
def 方法名(self,形参1,形参2,…):
方法体
5
格式一(调用无参方法):
10.2
class 类名:
变量名 = 值
10.3
赋值格式:
类名.类变量名 = 值
取值格式:
类名.类变量名(推荐)
对象名.类变量名(不推荐)
10.4
类变量推荐使用类名取值访问,也可以使用对象名取值访问
类变量只能通过类名修改;使用对象名调用类变量修改类变量的值时会创建新的对象独有变量;如果此时对象具有同名对象变量,则修改对应的变量值
只访问类变量的方法,定义类方法
既访问成员变量,也访问类变量的方法,定义成实例方法
既不访问成员变量,也不访问类变量,定义成静态方法
练习题
概念理解
要求:
1.如何理解面向对象编程(OOP)
2.什么是类,什么是对象
提示:
1.类和对象有两个层面的含义:类是对一类具体的事物的抽象的概括,具有相似内部状态和运动规律的实体的集合,具有相同属性和行为事物的统称,是抽象的;对象是一个具体的事物,在现实世界中可以是看得见摸得着的,可以直接使用的
7
def__str__(self):
return打印对象是显示的信息
8.
8
self.变量名
8
self.方法名(实参1,实参2,…)
8
self仅出现在成员方法中,指代执行该方法的对象。
9
9
封装操作可以对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的
9
self.__属性名 = 值
9
def__方法名(self,形参1,形参2,…):
类方法中允许使用类变量和类方法,通过第一个参数cls进行
实例方法中允许使用类变量和类方法
12
12
class 类名:
@staticmethod
def方法名(形参1,形参2,…):
方法体
12
类名.静态方法名(实参1,实参2,…)(推荐)
对象名.静态方法名(实参1,实参2,…)(不推荐)
12
只访问成员变量的方法,定义成实例方法
2.拥有相同(或者类似)属性和行为的对象都可以抽像出一个类
练习题
定义类、创建对象
要求:
1.python中如何定义一个类
class类名:
方法...
classTest:
deftest(self):
pass
2.类(class)由哪三个部分构成
类的名称、类的属性、类的方法
3.类名的命名规则是什么
大驼峰命名法
对象名.方法名()
格式二(调用有参方法):
对象名.方法名(实参1,实参2,…)
6.
6
__init__方法,也称为构造方法,创建对象时为对象初始化成员变量
6
格式一:
def__init__(self):
self.变量名1 =值1
格式二:
def __init__(self,形参1,形参2,…):
self.__属性名1 =形参1
面向对象及练习题
1.
1.1面向
面向对象是一种编程思想,是对现实世界中的事物进行抽象的方式。应用到代码编程设计中,是一种建立现实世界事物模型的方式。
1.2
面向过程关注的是完成工作的步骤,面向对象关注的是谁能完成工作。面向对象是在完成工作的时候关注哪些个体能够完成对应的工作,找到对应的个体即可完成对应任务。
self.__属性名2 =形参2
6
__init__方法在创建对象时被运行,无需手工调用即可执行
__init__方法中如果有形参,在创建对象时需要传递对应的实参
6
魔术方法是在类中声明、定义的方法,执行时无需手工调用,自动执行。
7.
7
__str__方法是在使用print函数打印输出对象到屏幕时被调用的方法,用于返回对象的规范化字符串表现形式
2.
2
类是一系列事物的统称,同类事物必定具有相同的特征。日常事物的特征根据特性分为状态和行为,对应到类中是变量和方法。
特征分类:
状态变量(成员变量)
行为方法(成员方法)
统称:类的成员
2.2类定义语法格式
class类名:
pass
说明:pass是空语句,不具有任何意义,仅为了保持程序结构完整性
2.3类名的命名规则
方法体
9
变量私有化格式:
self.__属性名 = 值
提供公共的访问器格式:
defget_属性名(self):
return self.__属性名
提供公共的修改器格式:
defset_属性名(self,属性名):
self.__属性名=属性名
10
10
类变量是定义在类中,不属于某个具体对象的特征,被所有对象共同使用的特征
4.python中如何通过类创建对象,请用代码进行说明
#创建对象
#对象名=类名()
classHuman:#定义类
pass
man=Human()#创建对象
5.如何在类中定义一个方法,请用代码进行说明
classHuman:
#定义run方法
defrun(self):
print("正在奔跑")
6.定义一个People类,使用People类,创建一个mayun对象后,添加company属性,值是"阿里巴巴";创建一个wangjianling对象,添加company属性,值是"万达集团"
相关文档
最新文档