Python学习笔记 19

对象

1.面向对象( oop )

Python作为一门面向对象语言,一切操作都是通过对象进行的

  • 面向过程语言:
    1. 将程序分解为一个个的步骤来完成
    2. 编程方式符合人类思想,编写相对简单
    3. 但这种编程方式往往只适用于一个功能,相似功能也难以实现所以可复用性低,并且难以维护
  • 面向对象语言:
    1. 关注的是对象,不关注过程
    2. 对于面向对象语言来说,一切皆对象
    3. 面向对象编程思想,将所用功能统一保存到对象中
    4. 这种编程思想易于阅读,理解,并且比较易于维护,容易复用 但这种方式编写,相对来说不符合人类思维,编写稍微麻烦点

2.类的简介和定义

介绍类,创建简单的类,用类创建实例对象,instance( )

a = int(10) # 创建一个int类的实例
s = str('hello') # 创建一个str类的实例
# 等价于:a=10,s = 'hello'
b= 20
print( a , type(a) )
print( b , type(b) )


# 类是一个用来创建对象的对象
# 类是type类型的对象,定义类实际上就是定义了一个type类型的对象

# 定义一个简单的类
# class 类名 [ ( 父类 ) ] :
#		代码块
# 类名要使用大驼峰命名法
class MyClass :
	pass

print(MyClass)
# <class '__main__.MyClass'>
print( type(MyClass) )
# <class 'type'>

# 使用类创建对象的简单流程:
# 1. 创建一个变量mc_1
# 2. 在内存中创建一个新对象
# 3. 将新对象的id赋值给变量
mc_1 = MyClass( ) # mc_1是MyClass的实例
mc_2 = MyClass( )
mc_3 = MyClass( )
print(mc_1 , type(mc_1))

# instance( ) 用来检查一个对象是否是一个类的实例
result = isinstance(mc_1,MyClass)
result = isinstance(b,int)
print(result)

# 可以向对象中添加变量,对象中的变量称为属性
# 语法:对象.属性名 = 属性值
# 这个变量(属性)存储在对象中而不是全局中
mc_1.name='yt'
print(mc_1.name)

3.对象的初始化

类的属性和一些特殊方法

class Person :

	# 在类中可以定义一些以__开头,__结尾的特殊方法(魔术方法)
	# 特殊方法不需要自己调用,它会在特殊时刻自己调用

	# init会在对象创建以后立即执行
	# init是用来向新建的对象中初始化属性的
	# 调用类创建对象时,对象后的参数会自动传递给init( )方法
	def __init__ (self,name) : # init(初始化)是特殊方法
		# 优点是使程序更严谨,如果创建对象时不传name就会报错
		# 也简化了程序,不用每次创建对象后再给该对象的name赋值
		self.name = name

	def say_hello (self) :
		print('hello',self.name)

p1 = Person('D')
# 使用类创建对象的流程:
# 1. 创建一个变量p1
# 2. 在内存中创建一个新对象
# 3. __init__方法执行
# 4. 将新对象的id赋值给变量
p2 = Person('F')

# p1 = Person( )
# p1.name = 'Q'
# p2 = Person( )
# p2.name = 'W'

p1.say_hello( )
p2.say_hello( )

4.类的基本结构

    class 类名 [(父类)] :
    
    		公共属性...
    
    		def __init__(self,...) :
    			...
    
    		def mothon_1(self,...) :
    			...
    		. . .     

   ———————————————————————————————————————————————————
    class ClassName(object):
    	"""docstring for ClassName"""
    	def __init__(self, arg):
    		super(ClassName, self).__init__()
    		self.arg = arg	
    		

5.小练习

class Dog :
	'''
		表示狗的类
	'''
	def __init__(self, name,age,gender,height) :
		self.name = name
		self.age = age
		self.gender = gender
		self.height = height

	def run( self ) :
		print('%s 跑过来了!'%self.name)
	def barking( self ) :
		print(self.height,'米高的',self.name,'在叫!')
	def eat( self ) :
		print(self.age,'岁的',self.gender,'狗',self.name,'在吃东西!')

dog_1 = Dog('小黑','2','公','0.4')
dog_2 = Dog('小白','1','公','0.2')
dog_3 = Dog('点点','4','母','0.7')

dog_1.run( )
dog_2.eat( )
dog_3.barking( )

猜你喜欢

转载自blog.csdn.net/weixin_44011689/article/details/89680525