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)

  

 

 

原文地址:https://www.cnblogs.com/dabai123/p/11438467.html

时间: 2024-11-06 20:30:43

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

python课堂整理33----面向对象(我的对象又在哪里)

一.面向对象设计(Object Oriented Design) 将一类具体事物的数据和动作整合到一起,即面向对象设计 理解两个概念: 类:把一类事物的相同的特征和动作整合到一起就是类,类就是一个抽象的概念 对象:就是基于类而创建的一个具体的事物(具体存在的),也就是特征和动作整合到一起 例: def people(gender,country): #定义一个“人”的类 def init(gender, country): #相当于初始化 dir = { #人的特征和动作 "gender&quo

【Python】[面性对象编程] 获取对象信息,实例属性和类属性

获取对象信息1.使用isinstance()判断class类型2.dir() 返回一个对象的所有属性和方法3.如果试图获取不存在的对象会抛出异常[AttributeError]4.正确利用对象内置函数的例子: def readImage(fp): if hasattr(fp,"read"): return readData(fp) return None 实例属性和类属性1.一句话,Python是动态语言,根据类创建的实例可以任意绑定属性.    注意:实例属性和雷属性的名字要保持不一

(一)Python入门-6面向对象编程:02类的定义-类和对象的关系-构造函数-实例属性-实例方法

一:类的定义 如果把对象比作一个“饼干”,类就是制造这个饼干的“模具”. 我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打 包在一起”. 对象是类的具体实体,一般称为“类的实例”.类看做“饼干模具”,对象就是根据这个“模 具”制造出的“饼干”. 从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属 性值(不共享状态).更具体一点:“方法代码是共享的,属性数据不共享”. Python中,“一切皆对象”.类也称为“类对象”,类的实例也称为“

python课堂整理28----re模块

一.正则(re) 就其本质而言,正则表达式(或re)就是一种小型的.高度专业化的编程语言,它内嵌在python中,并通过re模块实现. 正则表达式模式被编译成一系列的字节码,然后由用c语言编写的匹配引擎执行. 用途:模糊匹配 元字符:. ^ $ * + ? {} [] |  () \ ♦通配符 ‘ . ’(除\n以外都可以代替) 一个点代表一个其它任意字符 两个点代表2个字符 <以下程序都是在pycharm交互环境下运行> findall 会匹配所有内容,符合条件的都返回到一个列表 impor

python课堂整理4---列表的魔法

一.list   类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] 1. 中括号括起来 2. 逗号分割每个元素 3. 列表中的元素可以是数字.字符串.列表.布尔值等 4. 索引取值 5. 切片取值---->得到的还是列表 6. for循环 7. while 循环 8. 支持 in 操作 列表在内存中是以链表形式存储,可以被修改 二.列表灰魔法 1.修改 li = [1,

python课堂整理7---集合

前面小节: sep 用来控制每个元素间的间隔符号 print("alex", "dabai", "liu", sep = "") 按可变不可变: 1.可变:列表,字典 2.不可变:字符串, 数字, 元组 修改了变量的值,而id号跟着改变,即不可变类型 name = 'alex' print(id(name)) name = 'sb' print(id(name)) 按访问顺序: 1.顺序访问:字符串, 列表, 元组 2.映射:

python课堂整理26 ---json、pickle、shelve模块(序列化处理)

一.序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,python中叫pickling 序列化之后就可以把序列化后的内容写入磁盘或通过网络传输到别的机器上 反序列化:unpickling,也就是loads的过程 二.json模块 功能:处理成字符串 可以让不同语言间进行数据交换 import json dic = {"name": "alex"} data = json.dumps(dic) print(data, type(data)) 经js

python课堂整理31----configparser模块

一.功能:为配置文件开发 创建一个配置文件: import configparser config = configparser.ConfigParser() config["DEFAULT"] = { "ServerAliveInterval": '45', 'Compression': 'yes', 'CompressionLevel':'9' } config['bitbuckket.org'] = {} #创建一个空字典 config['bitbuckket

python 面向对象整理 --------1.类和实例的属性

1.类的属性: # /usr/bin/env # coding = utf-8 class Chinese: #类的属性在这 country = 'China' def __init__(self, name): #实例的属性在这 self.name = name def play_ball(self, ball): print('%s正在打%s' % (self.name, ball)) #查看属性 print(Chinese.country) #修改属性 Chinese.country='J