python课堂整理34----类的增删改查及实例属性增删改查

Posted dabai123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python课堂整理34----类的增删改查及实例属性增删改查相关的知识,希望对你有一定的参考价值。

一、类的增删改查

类里面定义的函数,第一个参数一定要写 self ,因为class的特殊性

定义类名:首字母大写

函数属性命名:动词加名词(即干什么事)

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化

print(Chinese.country) #查
Chinese.country = ‘CHINESE‘ #改
print(p1.country) #查
Chinese.dang = ‘gong chan党‘ #增加
print(p1.dang)  #p1也能查看dang,因为p1会到类里去找dang这个属性

技术图片 

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化


Chinese.dang = ‘gong chan党‘ #增加
print(p1.dang)
del Chinese.dang #删
print(p1.dang) #删掉后再调用,所以会报错

技术图片

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化
#创建函数属性
def eat(self, food):
    print(‘%s正在吃%s‘%(self.name, food))
Chinese.eat_food = eat  #增加一个函数属性

p1.eat_food(‘屎‘) #调用

def test(self):
    print(‘我被修改了qaq‘)

Chinese.play_ball = test #修改函数属性
p1.play_ball()

技术图片

二、实例属性的增删改查

#查

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化
print(p1.__dict__)
#查看
print(p1.name)
print(p1.play_ball)

技术图片  

#增

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化
print(p1.__dict__)
#增加
p1.age = 18
print(p1.__dict__)
print(p1.age)

技术图片

注意:不要修改底层的属性字典,即 p1.__dict__   

#p1.__dict__[‘sex‘] = ‘male‘

#删除

class Chinese:
    country = ‘China‘
    def __init__(self,name):
        self.name = name

    def play_ball(self, ball):
        print("%s 正在打%s"%(self.name,ball))

p1 = Chinese(‘sb‘) #实例化
print(p1.__dict__)
#增加
p1.age = 18
print(p1.__dict__)
print(p1.age)
#删除
del p1.age
print(p1.__dict__)

技术图片

三、对象和实例属性

可以把class当做最外层的函数,是一个作用域

#定义一个类,只当一个作用域,类似于c语言中的结构体
class MyData: pass x = 10 y = 20 MyData.x = 1 MyData.y = 2 print(x, y) print(MyData.x,MyData.y) print(MyData.x + MyData.y)

类中的数据属性及类外的变量

class Chinese:
    country = ‘China‘
    def __init__(self, name):
        self.name  = name

    def play_ball(self,ball):
        print(‘%s正在打%s‘%(self.name, ball))

p1 = Chinese(‘sb‘)
print(p1.country)
p1.country = ‘华夏‘  #相当于在实例字典中添加了一个数据属性
print(‘类的---->‘,Chinese.country)
print(‘实例的--->‘, p1.country)

技术图片

遵循点的调用方式,就在类的内部查找

在类的内部定义的数据属性,就跑到类字典去了

在实例内部定义的数据属性,就跑到实例字典去了

不加点就跟类无关,跟实例无关

country = ‘中国‘
class Chinese:
    country = ‘China‘
    def __init__(self, name):
        self.name  = name
        print(‘--->‘,country)  #不是点的调用方式,所以直接去类外去找

    def play_ball(self,ball):
        print(‘%s正在打%s‘%(self.name, ball))

p1 = Chinese(‘sb‘)
print(p1.country)

技术图片  

 

 

 

以上是关于python课堂整理34----类的增删改查及实例属性增删改查的主要内容,如果未能解决你的问题,请参考以下文章

python中字典的增删改查及相关知识点

python 关于列表的增删改查及个别的命令

Python集合 (set) 的增删改查及 copy()方法

列表(list)的增删改查及操作方法和元组(tuple)的查

python3目录

简单的增删改查及数据分页