Python复习笔记(五)面向对象

Python复习笔记(五)面向对象

1. __init__方法

# 1. 为对象在内存 中分配空间 -- 创建对象
# 2. 为对象属性 设置初始值 -- 初始化方法(init)+--------------
# 3. __init__: 专门用来定义一个类 具有哪些属性的方法!
class Cat:
    def __init__(self):
        # self.属性名 = 属性的初始值
        self.name = "TOM"
        # print("这是一个初始化方法")
    def eat(self):
        print("%s 吃鱼" % self.name)

# 使用类名()创建对象的时候会自动调用初始化方法__init__        
tom = Cat()
print(tom.name)

TOM 我去了
TOM

2. 利用参数设置属性初始值

# 1. 为对象在内存 中分配空间 -- 创建对象
# 2. 为对象属性 设置初始值 -- 初始化方法(init)
# 3. __init__: 专门用来定义一个类 具有哪些属性的方法!
class Cat:
    def __init__(self, new_name):
        # self.属性名 = 属性的初始值
        self.name = new_name
        # print("这是一个初始化方法")
    def eat(self):
        print("%s 吃鱼" % self.name)

# 使用类名()创建对象的时候会自动调用初始化方法__init__        
tom = Cat("TOM")
print(tom.name)

lazy_Cat = Cat("Lazy")
lazy_Cat.eat()

3. __del__方法

class Cat:
    def __init__(self, new_name):
        # self.属性名 = 属性的初始值+
        self.name = new_name
        print("%s 我来了" % self.name)
    def eat(self):
        print("%s 吃鱼" % self.name)
        
    def __del__(self):
        print("%s 我去了" % self.name)

# 使用类名()创建对象的时候会自动调用初始化方法__init__        
tom = Cat("TOM")
print(tom.name)

print("-"*50)

TOM 我来了
TOM
--------------------------------------------------

 TOM 我去了

4. __str__方法

# -*- coding: utf-8 -*-
"""
Created on Fri Feb 22 16:35:56 2019

@author: Douzi
"""

class Cat:
    def __init__(self, new_name):
        # self.属性名 = 属性的初始值+
        self.name = new_name
        print("%s 我来了" % self.name)
    def eat(self):
        print("%s 吃鱼" % self.name)
        
    def __del__(self):
        print("%s 我去了" % self.name)
        
    def __str__(self):
        # 必须返回一个字符串
        return "我是小猫[%s]" % self.name

# 使用类名()创建对象的时候会自动调用初始化方法__init__        
tom = Cat("TOM")
print(tom)

TOM 我来了
我是小猫[TOM]
TOM 我去了

5. 身份运算符

用于 比较 两个对象的 内存地址 是否一致—是否是对同一个对象的引用

  • 在Python中针对 None 比较时,建议使用 is 判断
  • is:例,x is y, 类似 id(x) == id(y))
  • is not:例,x is not y, 类似 id(x) != id(b)

注意: is: 判断两个对象的引用是否一致; ==:判断两个对象的值是否一样

 

6. 私有属性和私有方法: __secret

class Women:
    
    def __init__(self, name):
        
        self.name = name
        self.__age = 18
        
    def __secret(self):
        print("%s 的年龄是 %d" % (self.name, self.__age))
        
    def say(self):
        self.__secret()
        
xiaofang = Women("小芳")

# 私有属性不能被直接访问
# print(xiaofang.age)    

# 在对象的方法内部可以访问
# 私有方法同样不可以在外界方法
#xiaofang.__secret()

xiaofang.say()

7. 伪私有属性和私有方法(不推荐使用)

class Women:
    
    def __init__(self, name):
        
        self.name = name
        self.__age = 18
        
    def __secret(self):
        print("%s 的年龄是 %d" % (self.name, self.__age))
        
    def
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值