__slots__用法讲解

__slots__是python新式类中的一个特性,简单理解为“槽的意思”,类只拥有放在槽里的属性,上代码:

注释掉__slots__=('x','y'),则对象b可以自由添加属性x,y,z,运行结果打印出x,y,z的值,对象b的属性

包含x,y,z

class B(object):
    #"""This is class B"""
    #__slots__=('x','y') #槽限制了只能有属性x,y
    pass
    def test(self):
        """This is class B"""
        print('class B')
        
if __name__ == '__main__':
    b = B()
    b.x = 1
    b.y = 2
    print(b.x,b.y)
    b.z = 2  #B类没有属性z
    print(b.z)
    print(dir(b))

反注释__slots__=('x','y'),则对象b只可以添加属性x,y,无法添加属性z,运行结果打印出x,y的值,

对象b没有属性z

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue的作用域插槽(Scoped Slots)是一种能够将父组件中的数据传递到子组件中的插槽。在使用作用域插槽时,父组件通过向子组件传递一个函数,子组件在执行该函数时会将其内部的数据作为参数传递给父组件,从而实现了数据的双向绑定。 具体来说,作用域插槽的基本用法是:在父组件中定义一个插槽,并在其中使用v-bind指令把一个函数绑定到该插槽上。在该函数中,可以通过传入的参数访问到子组件中的数据。在子组件中,通过在插槽名前加上"v-slot:"前缀,来使用父组件传递进来的函数并将其返回值渲染出来。 例如,在一个父组件中,定义了一个名为"data"的数组,该数组中有多个对象,每个对象包含了一个"content"属性。在父组件中,定义了一个名为"card"的子组件,并在其中定义了一个名为"default"的插槽。可以通过以下方式实现将"data"数组中的内容传递到"card"子组件中: ``` // 父组件中的模板 <card> <template v-slot:default="slotProps"> <div v-for="item in slotProps.data" :key="item.id"> {{ item.content }} </div> </template> </card> // 子组件中的模板 <template> <div> <slot :data="cardData"></slot> </div> </template> // 子组件中的script export default { data() { return { cardData: [ { id: 1, content: "card 1" }, { id: 2, content: "card 2" }, { id: 3, content: "card 3" } ] } } } ``` 在父组件中,通过v-slot指令将"default"插槽与一个函数绑定起来,该函数接收一个名为"slotProps"的参数。在该函数内部,可以通过"slotProps"参数访问到子组件中传递过来的"data"属性,并使用v-for指令将其遍历出来并渲染出来。在子组件中,通过slot元素将"data"属性传递给父组件使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值