• python(对象与实例属性)


    类的作用域问题

    由引用(.)才是局部的,类内部的作用域不会超出类体,没有引用(.)是全局的

    # -*- coding: utf-8 -*-
    wheel='轮子'
    class car:
        '这是一个车的类'         #类的说明
        wheel='橡胶'
        Engine='发动机'
        def __init__(self,License,brand,price):  #初始化必须这么些(__init__),自动return
            #产生self字典
            self.Licenses=License
            self.brands=brand
            self.prices=price
            print('我是全局的',wheel,'我是局部的',car.wheel)
        def transport(self):
            print('---拉货---')
        def manned(self):
            print('---载人---')
        #带参方法
        def colors(self,color):
            print('---%s的颜色是%s---'%(self.Licenses,color))
    
    car1=car('123456','大众','100000')
    

    修改实例的属性(用实例名)与类的属性(用实例名)区分

    # -*- coding: utf-8 -*-
    class car:
        '这是一个车的类'         #类的说明
        wheel='橡胶'
        Engine='发动机'
        def __init__(self,License,brand,price):  #初始化必须这么些(__init__),自动return
            #产生self字典
            self.Licenses=License
            self.brands=brand
            self.prices=price
        def transport(self):
            print('---拉货---')
        def manned(self):
            print('---载人---')
        #带参方法
        def colors(self,color):
            print('---%s的颜色是%s---'%(self.Licenses,color))
    
    car1=car('123456','大众','100000')
    # 改的仅是实例的
    car1.wheel='轮子1'
    print(car.__dict__)
    print(car1.wheel)
    # 改的是类的
    car.wheel='轮子2'
    print(car.__dict__)
    

    类体中变量的修改与实例后的修改

    # -*- coding: utf-8 -*-
    class car:
        '这是一个车的类'         #类的说明
        wheel='橡胶'
        Engine='发动机'
    
        s=['q','w']
    
        def __init__(self,License,brand,price):  #初始化必须这么些(__init__),自动return
            #产生self字典
            self.Licenses=License
            self.brands=brand
            self.prices=price
        def transport(self):
            print('---拉货---')
        def manned(self):
            print('---载人---')
        #带参方法
        def colors(self,color):
            print('---%s的颜色是%s---'%(self.Licenses,color))
    
    car1=car('123456','大众','100000')
    #给实例变量重新赋值
    # car1.s=[1,2,3]
    # print(car.s)
    # print(car1.s)
    #修改的是类中的变量,不是属性
    car1.s.append('e')
    print(car.s)
    print(car1.s)
    print(car1.__dict__)
    

      

  • 相关阅读:
    inline必须在定义、实现都标记
    循环数组优化队列
    游程编码的优化
    新密码
    I Could Have Danced All Night
    strtok源码 bitset 空间压缩
    XOR Swap
    补码
    临时邮箱
    linux中find批量删除空文件夹
  • 原文地址:https://www.cnblogs.com/2018-1025/p/12019545.html
Copyright © 2020-2023  润新知