面向对象

面向对象(object-oriented)

面向对象 面向过程
都是解决问题的方法,没有好坏对错

具有相同属性和行为事物的统称

定义类名

class 类名: #  类名首字母大写
    属性
    方法
对象

某一具体存在的事物
类就是对象的模板

对象名字 = 类() # 创建对象

在方法内通过self获取对象
 class Cat:
     def eat(self):
             print('吃鱼')
     def drink(self):
             print('喝牛奶')
 jf = Cat()
 jf.eat()
 jf.drink()

结果如下:
在这里插入图片描述

init 魔法方法

在创建一个对象时默认被调用,不需要手动调用
如果创建对象时传递了多个实参那么
init(self)中出了self作为第一个形参外还需要多个形参

def __init__(self, a, b, c)

注意:
1 在类内部获取属性和实例方法,通过self
2 再类外部获取属性和实例方法,通过对象名获取。
3 如果一个类有多个对象,每个对象的属性是各自保存的,都有各自独立的地址;但是实例方法是所有对象共享的,只占用一份内存空间。

str 魔法方法

直接打印对象会显示16进制的内存地址
如果写啦str方法就会打印str方法的返回值

总结

# 定义类名
class Cat:
    # 属性
    # init 魔法方法
    def __init__(self, a, b, c):  
        # 属性赋值
        self.name = a        
        self.age = b        
        self.weight = c 
   # 方法     
   def eat(self):        
        print('吃鱼')    
   def drink(self):        
       print('喝牛奶') 
       
    def info(self):       
      print('我的名字叫%s,我的年龄是%s,我的体重是%s' % (self.name, self.age, self.weight)) 
      
    def __str__(self):        
        return self.name
        
 # 创建对象       
jf = Cat('加菲猫', 18, 120)
jf.eat()
jf.drink()
# 对象调用方法,会自动把对象的一个引用传给了self
jf.info()
tom = Cat('汤姆', 18, 140)
tom.info()
print(jf)
print(tom)

结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值