面向对象

面向对象编程(OOP),是一种编程方式,这种编程方式需要使用“对象”来实现
对象的特征
1、世间万物皆对象
2、每个对象都是唯一的
3、对象具有属性和行为,对象的行为包括具有的功能和具体的实现。行为(方法)是类中特殊的函数
4、对象具有状态,状态是指某个瞬间对象的各个属性的取值,对象的某些行为会改变对象自身的状态
5、对象分为类对象和实例对象两大类
类对象是具有相同属性和行为的实例对象的抽象
类对象就是实例对象的模板,实例对象是由类对象创建出来的
同一个类对象的所有实例对象如果具有相同的属性,表明他们的属性的含义是相同的
面向对象编程的大体步骤:
1、抽象出类对象
2、抽象出类对象的属性
3、抽象出类对象的行为(方法)
4、根据类对象创建实例对象
5、通过实例对象访问属性和方法
驼峰规则:每个单词首字母大写

class Cat(object):#括号里写继承的父类,不明确是就写object:python内置的类对象,也叫基类
#pass
#初始化属性

    def __init__(self,breed,name,age,health):#双下划线表示构造方法,self指实例化后的对象,这里即自己,必须写
        self.breed = breed
        self.name = name
        self.age = age
        self.health = health
    #行为,第一个参数都是self
    def run(self):
        print("Cat is running.")
    
    def miao(self):
        print("Cat is miaoing.")
    
    def eat(self):
        print("Cat is eatting.") 

类的方法与函数的区别
1、定义方法时,方法的第一个形参表示调用该方法的实例对象,第一个形参的名称通常是self,也可以是其他名称
2、调用该方法时,系统自动将调用该方法的实例对象作为实参传递给第一个形参。第一个实参会传递给第二个形参,第二个形参会传递给第三个形参,依此类推

#根据类对象创建实例对象

cat = Cat("波斯猫",'喵喵',1,'很好')
print(cat.breed)
print(cat.name)
print(cat.age)
print(cat.health)

cat.run()
cat.miao()
cat.eat()

实例属性指的是实例对象所绑定的属性
1、在类对象内部:
self.属性名 = 属性值
推荐在__init__中进行绑定,这样,在创建实例对象后就会自动调用特殊方法__init__对实例对象进行初始化,从而绑定实例属性,其他方法中绑定的话,可能需要手动调用方法后才绑定
2、外部
实例对象.属性名 = 属性值
如果指定名称的实例属性已经存在,则是对实例属性进行修改

访问实例属性:
1、方法中:self.属性名
2、类对象外部:是实例对象.属性名

class Myclass(object):
def init(self):
#方法中绑定实例属性
self.ia1 = 18

def do_sth1(self):
    #方法中
    print(self.ia1)

def do_sth2(self):
    print(self.ia2)

def do_another(self):
    self.ia2 = 56

def do_sth3(self):
    print(self.ia3)
mc = Myclass()
mc.do_sth1()
mc.do_sth2()#属性值没有被赋值
mc.do_another()
mc.do_sth2()

print(mc.ia2)
mc.do_sth3()
mc.ia3 = 66
print(mc.ia3)
                                                                                               
mc2 = Myclass() 
print(mc2.ia3) 

实例对象.__dict__可获得该实例所绑定的所有属性及其值的字典
mc.__dict__        

dir(mc)

类对象属性

绑定雷属性(给类对象绑定属性)
1、类对象内部(方法外):属性名 = 属性值
2、类对象外部:类对象.属性名= 属性值
如果指定名称的类属性已经存在,则是对类属性进行修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值