Python基础刻意练习:类和对象

task10

一.对象(Object)

对象是一个抽象概念,表示任意存在的事物。通常把对象划分为两个部分,即静态部分与动态部分。静态部分被称为“属性”,任何对象都具备自身属性,这些属性不仅是客观存在的,而且是不能被忽视的。

1.封装

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

#属性
class Student:
name="小红"
age=18
weight=45
height=163
#方法
def idol(a):
		print("她的爱豆是xxx")
	def banji(a):
		print("她的班级是3班")

b=Student()
print(b)
print(type(b))
print(b.__class__)
print(b.__class__.name)
print(b.__class__.age)
print(b.__class__.weight)
print(b.__class__.height)
b.idol()
b.banji()

在这里插入图片描述

2.继承

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

class Student(list):
	pass

>>> lst=Student(["小明","小花","小芳","小溪"])
>>> lst.append("小华")
>>> lst.sort()
>>> print(lst)

在这里插入图片描述

3.多态

将父类对象应用于子类的特征就是多态。子类继承父类特征的同时,也具备了自己的特征,并且能够实现不同的效果,这就是多态化的结构。
eg:

class Child:
	def Name(a):
		raise AttributeError

	
>>> class One:
	def Name(a):
		print("第一个孩子叫A")

		
>>> class Two:
	def Name(a):
		print("第二个孩子叫B")


>>> def func(child):
	child.Name()

	
>>> func(One())


在这里插入图片描述

4.self

Python中的self相当于C++中的this指针
类的方法与普通的函数只有一个特别的区别 —— 它们必须有一个额外的第一个参数名称(对应于该实例,即该对象本身),按照惯例它的名称是 self。在调用方法时,我们无需明确提供与参数 self 相对应的参数。
eg:

class Student:
	def work(self,a):
		self.a=a

		
>>> class Student:
	def work(self,a):
		self.a=a
	def aim(self):
		print("学生的主要任务是%s,目的是生活得更好"%self.a)

		
>>> b=Student()
>>> b.work("学习")
>>> c=Student()
>>> c.work("努力学习")
>>> 
>>> b.aim()
>>> c.aim()

在这里插入图片描述

二.类

类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。在Python中,类是一种抽象概念,可以定义每个对象共有的属性和方法。

1.定义类

在Python中,类的定义使用class关键字来实现。
语法格式:

class ClassName:
'''类的帮助信息''' #类文档字符串
statement #类体

参数说明:
ClassName:用于指定类名,一般使用大写字母开头,如果类名中包括两个单词,第二个单词的首字母也要大写,这种命名方法也称为“驼峰式命名法”,这是惯例。当然也可以根据自己的习惯命名,但是一般推荐按照惯例来命名。
‘’‘类的帮助信息’’’:用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号“(”后,将显示该信息。
statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用pass语句代替。
eg:

class Student:
'''学生类'''
pass
2.创建类的实例

定义完类之后,并不会真正创建一个实例,class语句本身并不创建类的任何实例,所以在类定义完成之后,可以创建类的实例,即实例化类的对象。
语法格式:ClassName(parameterlist)
参数说明:
ClassName:必选参数,用于指定具体的类;
parameterlist:可选参数,当创建一个类时,没有创建—inint—()方法,或者—init()方法只有一个self参数时,parameterlist可以省略。
eg:

class Student:
'''学生类'''
pass
wildStudent=Student() #创建学生实例
print(wildStudent)

在这里插入图片描述

3.创建–init–()方法

在创建类后,类通常会自动创建一个–init–()方法,该方法是一个特殊的方法,类似于Java语言中的构造方法。每当创建一个类的新实例时,Python都会自动执行它。–init–()方法必须包含一个self参数,并且必须是第一个参数。self参数是一个指向实例本身的引用,用于访问类中的属性和方法。在方法调用时会自动传递实际参数self。因此,当–init–()方法只有一个参数时,在创建类的实例时,就不需要指定实际参数了。
eg:

class Student:
	'''学生类'''
	def _init_(self):
		print("学生类")	
>>> wildStudent=Student()
>#结果:学生类
4.创建类的成员并访问

类的成员主要是由实例方法和数据成员组成。在类中创建了类的成员后,可以通过类的实例进行访问。

①创建实例方法并访问

所谓实例方法是指在类中定义的函数,该函数是一种在类的实例上操作的函数。与_init_()方法一样,实例方法的第一个参数必须是self,并且必须包含一个self参数。
语法格式:

def functionName(self,parameterlist):
block

参数说明:
functionName:用于指定方法名,一般使用小写字母开头;
self:必要参数,表示类的实例,其名称可以是self以外的单词,使用self只是一个惯例而已;
parameterlist:用于指定除self参数以外的参数,各参数间使用逗号“,”进行分隔;
block:方法体,实现具体功能
实例方法创建完后,可以通过类的实例名称和点“.”操作符进行访问

语法格式:instanceName.functionName(parametervalue)
其中,instanceName是类的实例名称,functionName为要调用的方法名称,parametervalue表示为方法指定对应的实际参数,其值的个数为parameterlist的个数-1.

②创建数据成员并访问

数据成员时指在类中定义的变量,即属性,根据定义位置,可分为类属性和实例属性

(1)类属性

是指定义在类中,并且在函数体外的属性。类属性可以在类的所有实例之间共享值,也就是在所有实例化的对象中公用。
eg:

class Student:
	'''学生类'''
	work="学习"
	aim="取得好成绩"
	win="实现自己的人生理想"

	
>>> def _init_(self):
	print("学生类:")
	print(Student.work)
	print(Student.aim)
	print(Student.win)
#运行结果:
学生类:
学习
取的好成绩
实现自己的人生理想
(2)实例属性

是指定义在类的方法中的属性,只作用于当前实例中。eg:

class Student:
	'''学生类'''
	def _init_(self):
	  self.work="学习"
	  self.aim="取得好成绩"
	  self.win="实现自己的人生理想"
	  print("学生类:")
	  print(Student.work)
	  print(Student.aim)
	 print(Student.win)
#运行结果:
学生类:
学习
取的好成绩
实现自己的人生理想

以上就是我整理的task10的全部内容,感谢你的浏览。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值