一、引言
Python作为一门流行的编程语言,其前景一直是编程界的热门话题。Python简洁的语法、强大的标准库和丰富的第三方库使其在众多领域都有广泛的应用,从网站开发、数据分析、人工智能到科学计算等。随着数据科学和人工智能的兴起,Python的需求持续增长,成为了许多初学者和转行人士的首选语言。
根据业界调查,Python的流行度持续位于顶尖位置。技术发展的趋势表明,Python在未来仍然是一个值得投资学习的语言,不仅因为其在当前的技术市场中的需求,还因为它在教育、科研和自动化等领域的扩展性。
二、第九章
1.两大编程思想
# Author : zzd
# Date : 2016/3/20 22:14
"""
面向过程:
事物比较简单,可以线性的思维去解决
面向对象:
事务比较复杂,使用简单的线性思维无法解决
共同点:
面向过程和面向对象都是解决实际问题的一种思维方式
联系:
二者相辅相成,并不是对立的
解决复杂问题,通过面向对象方式便于我们从宏观把握事务之间复杂的关系,
方便分析整个系统;具体到微观操作,仍然使用面向过程来处理
"""
2.类和对象的理解
# Author : zzd
# Date : 2016/3/20 22:14
# 1.类和对象
"""
类:
类是多个类似事物组成的群体的统称。能够帮助我们快速的理解和判断事物的性质
数据类型:
不同数据类型属于不同的类
使用内置函数type()查看数据类型
例如:
print(type(10))
print(type(20))
对象:
10,20都是Int类之下包含相似的不同个例,这个个例的专业术语称为实例或对象
"""
3.类和对象的创建
# Author : zzd
# Date : 2016/3/20 22:46
# 1.类的创建
"""Student为类的名称,由一个或多个单词组成,每个单词首字母大写,其余小写"""
class Student:
# 直接写在类里的变量,称为类属性
address = '上海'
# name,age为实例属性
def __init__(self,name,age):
self.name = name
self.age = age
# 实例方法
"""在类之外定义的称为函数,在类之内定义的称为方法"""
def info(self):
print('name:',self.name,'age:',self.age)
# 类方法
@classmethod
def cm(cls):
print('类方法')
# 静态方法
@staticmethod
def sm():
print('静态方法')
# 2.对象的创建
"""
对象的创建又称为类的实例化
语法:
实例名=类面()
"""
stu = Student('zxy','01')
print(stu.name)
print(stu.age)
stu.info() # 方法一:对象名.方法名()
Student.info(stu) # 方法二:类名.方法名(类的对象) -》 实际上就算定义处的self
4.类属性-类方法-静态方法
# Author : zzd
# Date : 2016/3/20 23:23
# 类属性、类方法、静态方法
"""
类属性:类中方法外的变量称为类属性,被该类所有对象共享
类方法:使用@classmethod修饰的主法,使用类名点直接访问的方法
静态方法:使用 @staticmethod修饰的主法,使用类名点直接访问的方法
"""
class Student:
# 直接写在类里的变量,称为类属性
address = '上海'
# name,age为实例属性
def __init__(self,name,age):
self.name = name
self.age = age
# 实例方法
"""在类之外定义的称为函数,在类之内定义的称为方法"""
def info(self):
print('name:',self.name,'age:',self.age)
# 类方法
@classmethod
def cm(cls):
print('类方法')
# 静态方法
@staticmethod
def sm():
print('静态方法')
# 类属性调用
print(Student.address)
Student.address = '杭州'
print(Student.address)
# 类方法调用
Student.cm()
# 静态方法的调用
Student.sm()
5.动态绑定属性和方法
# Author : zzd
# Date : 2016/3/20 23:39
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
def info(self):
print('my name is ',self.name,', i am', self.age,' years old')
stu1 = Student('张三',20)
stu2 = Student('李四',30)
print('-----------------属性----------------------------')
print('为stu1动态绑定性别属性')
stu1.gender = '女'
print(stu1.name,stu1.age,stu1.gender)
print('为stu2动态绑定ID属性')
stu2.id = 100
print(stu2.name,stu2.age,stu2.id)
print('-----------------方法----------------------------')
def show():
print('测试动态绑定方法')
stu1.show = show
stu1.show()