Python基础——【对象】【类】【继承】笔记

  •  面对对象和类的概念
  1. 要研究的东西就是对象。(列表、元组、字典都可以作为对象)
  2. 对象=属性+方法(描述对象能做什么)

              eg. 小狗=(身高,体重,品种)+(睡觉,吃,叫)

  3. 把对象归类——类
  4. python是面向对象的语言
  5. 通过在类中定义变量来说明属性;通过在类中定义函数来说明方法

 

  • 类和对象的创建
  1. 先创建类:
    class Student:
        age = 13 	#age是Student类的属性
  2. 创建对象:我们通过 object = class() 这个形式来创建对象。
    class Student:
        age = 13  # age是Student类的属性
    
    s1 = Student()  # 创建对象s1
    print(s1.age)

     

  • __init__()和self
  1. __init__()是一个特殊方法,特殊方法的特点是名字前后各有两个下划线。
  2. 在类中定义了__init__()这个方法,创建对象时,Python会自动调用这个方法。把这个过程叫做初始化。
    class Student:
        age = 13  # age是Student类的属性
    
        def __init__(self, name):
            self.name = name
            print('The student is ', self.name)
    
    
    s1 = Student('Lily')  # 创建对象s1
    s2 = Student('Pva')

           

  1.   self其实就是对象p1、p2的表示。换句话说,self在类的语句里就代表着类的一个对象。
  2. 当我们创建了对象p1,那么此时在类里面self就是指p1。

        

 

  • 属性操作

①引用属性:(通过定义show函数)

class Student:
    age = 13  # age是Student类的属性

    def __init__(self, name):
        self.name = name

    def show(self):  # 定义show()函数,用来显示年龄
        print(self.age)


s1 = Student('Lily')  # 创建对象s1
s2 = Student('Pva')
s1.show()  # 调用show()函数

   

②修改属性:(也可以用setattr()见下)

s1.name = 'PPnoak'  # 修改对象s1的name属性

③删除属性:(也可以用delattr()方法,见下)

del s1.name

④hasattr()确认p1是不是有name这个属性。返回值为True就说明p1有name这个属性。

print(hasattr(s1, 'name'))

⑤getattr(),用来获取对象的属性。

print(getattr(s2, 'name'))

⑥setattr(),用来修改对象的属性。

setattr(s1, 'name', 'sfw')

⑦delsttr(),用来删除对象的属性。

delattr(s1,'name')    #删除s1对象的name属性

⑧__doc__   用来查看帮助信息

⑨__name__   用来查看类的名字用的。

 

  • 类的继承

①父类需要有所有子类的共同点。(我们把动物作为一个父类,那么猫、狗等等就是动物的子类。狗又可以细分成吉娃娃、泰迪、哈士奇等等。但他们都还是动物。)

②子类的一个对象p1就自动有父类的所有属性。

③我们在子类名称后的括号中写上父类的名称。说明Child是Parent的子类。括号中为object说明没有父类了。

class Parent(object):    #括号中为object说明没有父类了
    def p(self):
        print('正在调用父类方法')


class Child(Parent):    #括号中写父类名称
    def c(self):
        print('正在调用子类方法')

④如果子类中定义的方法或属性与父类中同名,子类定义的方法或属性会覆盖父类的。

class Parent(object):
    def p(self):
        print('正在调用父类方法')
class Child(Parent):
    def p(self):
        print('正在调用子类方法')
        
p1=Child()	#新建对象
p1.p()

  

⑤没有属性和方法写pass。

class Animal(object):
    pass

 

  • 阶段测试

定义一个类叫动物,动物下面还有一个类叫鱼,鱼里面又有金鱼、鲨鱼和鲤鱼。

class Animal(object):
    pass


class fish(Animal):
    def __init__(self, name):
        self.name = name
        print(self.name)


shark = fish('shark')
jinyu = fish('jinyu')
liyu = fish('liyu')

ref:https://www.cxy61.com/girl/app/home/home.html?wt=1&mt=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值