Python类和对象

Python类和对象的学习笔记

本文章是作者在学习python的过程中的学习笔记,如果有错误请提醒

#本文档用于记录python class 的学习笔记(参考小甲鱼的视频进行学习)
一、Class
1. class = 属性+方法;   

2. self 相当于c++中this指针:
    class ball:
        speed = 50
        def setname(self, name):
            self.name = name
            
3. class的方法:
(1)__init__(self),构造方法
    在实例化对象的时候,这个方法就会自动调用例如:
        class ball:
            def __init__(self,name):
                    self.name = name
    可以加入默认参数:
        def __init__(self,name = 'qhsjtc'):
            self.speed = 0
            self.high = 0
            self.quality = 0
    这里一定要注意初始化参数的时候要用self
    
4.共有和私有 
(1)共有
    class ball:
        name = '足球'
(2)私有
    class ball:
        __name = '足球'      #这样只能通过调用方法
但是可以通过: b._ball__name来访问 (b实例化对象)

二、继承
1.例如
    class Mylist(list),Mylist 继承了list,
注意:子类重写初始化方法(或者调用父类的方法)(1)调用未绑定的父类方法()class Shark():
        def __init__(self):
            Fish.__init__(self):  #需要注意这个self   
            self.hungry = True
(2)使用super函数:
    class Shark():
        def __init__(self):
            super().__init__():   #不需要传入self(这里有点疑问)
            self.hungry = True
2.多重继承:
    class Student(Person, boy, girl):

三、组合 
1.例子:
class Turtle:
    def __init__(self, x):
        self.num = x

class Fish:
    def __init__(self, x):
        self.num = x
        
class Pool:
    def __init__(self, x, y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)
        
四、mixin:
https://blog.csdn.net/u012814856/article/details/81355935        
        
五、BIF(内置函数)        
1. issubclass(class, classinfo)  #classinfo 可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True
2. isinstance(object, classinfo)  #检查object 是否属于classinfo
第二个参数不 是类或者由类对象组成的元组,会抛出一个TypeError异常
3. hasattr(object, name)    #查看对象中否有这个属性注意
例如:
    hasattr(Person,'score')   #一定要有字符串的标志
4. getattr(object,name[, default])    #得到属性的值
例如:
    getattr(Pesrson, 'high', '您所访问的属性不存在')
5. setattr(object, name, value) #设定对象中指定属性的值,如果指定属性不存在,他会新建一个属性
例如:
    setattr(Person, 'high', 5)
6. delattr(object, name)  #删除对象中指定属性,如果属性不存在,则返回AttributeError
    delattr(Perso, 'high')
7. property(fget = None, fset = None, fdel = None, doc = None) #利用属性设置属性
例如:         #要传入方法
    class C:
        def __init__(self, size = 10):
            self.size = size
        def getSize(self):
            return self.size
        def setSize(self):
            self.size = value
        def delSize(self):
            del self.size
        x = property(getSize, setSize, delSize)

c1 = C()
c1.x = 18
del c1.x  #这样可以直接对x进行操作








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值