0
点赞
收藏
分享

微信扫一扫

Python笔记16-面向对象基础

小桥流水2016 2022-02-23 阅读 102

1. 类和对象

类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念。类用于创建对象。
特征即属性,行为即方法

  • 对象
    对象是类创建出的真实事物。

2.面向对实现方法

  • 定义类
    Python2中类分为经典类和新式类

    • 语法
    class 类名():
    	代码
    	......
    

    注:类名须满足标识符命名规则,同时遵守大驼峰命名习惯。

    • 示例
    class Dog():
    	def eat(self):
    		print('bone')
    
    • 经典类
      经典类:不由任何内置类型派生出的类
      class 类名:
      	代码
      	......
      
  • 创建对象
    对象又称实例。

    • 语法
    对象名=类名()
    
    • 示例
    class Dog():
    	def eat(self):
    		print('bone')
    # 创建对象
    d1=Dog()
    # d1对象调用实例方法
    d1.eat() # bone
    
  • self
    self指的是调用该函数的对象。
    示例

    class Dog():
        def eat(self):
            print('bone')
            print(self)
     # 创建对象
     d1 = Dog() 
     print(d1) 
     # <__main__.Dog object at 0x0000010F1B4E9400>
    
     # d1对象调用实例方法
     d1.eat()  
     # bone
     # <__main__.Dog object at 0x0000010F1B4E9400>
    
     d2 = Dog()
     print(d2) 
     # <__main__.Dog object at 0x0000010F1B4E94A8>
    
     # d2对象调用实例方法
     d2.eat()  
     # bone
     # <__main__.Dog object at 0x0000010F1B4E94A8>
    

属性即特征。
对象属性既可以在类外面添加和获取,也可以在类里面添加和获取。

1. 类外面添加对象属性

  • 语法
对象名.属性名=
  • 示例
d1.color='white'
d1.age=2

2. 类外面获取对象属性

  • 语法
对象名.属性名
  • 示例
print(d1.color)
print(d1.age)

3. 类里面获取对象属性

  • 语法
self.属性名
  • 示例
class Dog():
    def dog_info(self):
    	print(self.color)
    	print(self.age)
# 创建对象
d1=Dog()

# 添加实例属性
d1.color='white'
d1.age=2

d1.dog_info()
# whilte
# 2

Python中__xx__()函数称魔法方法,指的是具有特殊功能的函数。

1. init()
作用:初始化对象。

  • 无参数的__init__()
class Dog():
    # 定义初始化函数
    def __init__(self):
        # 添加实例属性
        self.color='white'
        self.age=2
    def dog_info(self):
        # 类中调用实例属性
    	print(self.color)
    	print(self.age)
# 创建对象
d1=Dog()
# 调用方法
d1.dog_info()
# white
# 2

注:__init__()方法,在创建对象时默认被调用,不需手动调用;__init__(self)中self参数,不需开发者传递,python解释器会自动把当前对象引用传递过去。

  • 带参数的__init__()

    • 语法
    def __init__(self,属性1,属性2,...)
    	self.属性1=属性1
    	self.属性2=属性2
    	......
    
    • 示例
    class Dog():
        # 定义初始化函数
        def __init__(self,color,age):
            # 添加实例属性
            self.color=color
            self.age=age
        def dog_info(self):
            # 类中调用实例属性
            print(self.color)
            print(self.age)
    # 创建对象
    d1=Dog('white',2)
    d2=Dog('black',3)
    
    # 调用方法
    d1.dog_info()
    # white
    # 2
    
    d2.dog_info()
    # black
    # 3
    

2. str()
当使用print(对象名)时,默认打印对象的内存地址。若类中定义了__str__()方法,则会打印这个方法中return的数据。

class Dog():
    # 定义初始化函数
    def __init__(self,color,age):
        # 添加实例属性
        self.color=color
        self.age=age
    def __str__(self):
        return f'color:{self.color},age:{self.age}'

# 创建对象
d1=Dog('white',2)

print(d1) # color:white,age:2

3. del()
当删除对象时,python解释器会默认调用__del__()方法。

class Dog():
    # 定义初始化函数
    def __init__(self,color,age):
        # 添加实例属性
        self.color=color
        self.age=age
    def __del__(self):
        print(f'{self}对象已删除')
        
# 创建对象
d1=Dog('white',2)

del d1 # <__main__.Dog object at 0x000001AD5603B240>对象已删除

16
Levi_5

举报

相关推荐

0 条评论