Python3基础 一个类中有两个属性A,B。 只能对其中的一个进行赋值

镇场诗:
    诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。
    愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。
——————————————————————————————————————————

code:

#很多有趣的功能,看似简单,但是你要是写起来,可不那么容易呐。
#多思考,心常清静,好好看小甲鱼的视频教程
class MyClass :
    def __init__(self) :
        self.boolBook = True
        self.boolPen = True
        #酱油选手
        self.count=1

    #笔和书只能对一个进行赋值。这。。。还有没进行逻辑思考了,脑袋都锈了
    def __setattr__(self,name,value) :

        if name == ‘pen‘ and self.boolPen :     #初次对pen属性进行赋值
            self.boolBook=False
            print(‘pen属性已经成功赋值‘)
            return super().__setattr__(name,value)

        elif name == ‘book‘ and self.boolBook: #初次对book属性进行赋值
            self.boolPen=False
            print(‘book属性已经成功赋值‘)
            return super().__setattr__(name,value)

        elif name != ‘pen‘ and name != ‘book‘ : #对其他属性进行赋值
            print(name,"成功赋值")
            return super().__setattr__(name,value)

        elif name == ‘pen‘ and (not self.boolPen) :  #已经有book了,还想要pen
            print(‘没有成功赋值,因为您已经选择了书‘)

        elif name == ‘book‘ and ( not self.boolBook) : #已经有pen了,还想要book
            print(‘没有成功赋值,因为您已经选择了笔‘)

result:

============= RESTART: C:\Users\Administrator\Desktop\myCode.py =============
>>> a=MyClass()
boolBook 成功赋值
boolPen 成功赋值
count 成功赋值
>>> a.pen=1
boolBook 成功赋值

——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。
Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。
我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。

时间: 2024-10-16 17:52:31

Python3基础 一个类中有两个属性A,B。 只能对其中的一个进行赋值的相关文章

为一个类动态的添加属性

/* 1不想集成一个类添加属性,想动态的添加一个属性 */ ||解决步骤 1.新建一个分类,导入 #import <objc/runtime.h> 2.添加属性(添加的属性,只是做了声明,并没有帮我们生成set,get方法) 3.手动添加set,get方法 {1.在set方法中实现 /* *@object 为那个对象添加属性 *@key  添加一个对应的key  c语言类型的 *@value  对应的值 *@objc_AssociationPolicy  策略 */ objc_setAssoc

Python3基础 把类的实例化放到另外一个类中

? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdown ? code """ @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ cl

关于一个类里面两部分重复的代码怎么优化

如果你个方法里面有两部分相同的代码,只是个别参数不同而已,那么我们把相同的代码抽取出来作为另一个private方法,然后在原来的方法里面去调用就可以避免局部变量的问题. 1 public class DutyAutoWarningNotify extends TaskVO { 2 3 /** 4 * 5 */ 6 private static final long serialVersionUID = 4134338525795435287L; 7 8 /** 9 * {@inheritDoc}

Python3基础18——类与对象

类与对象class 命名规范:首字母大写 驼峰命名 见名知意.类的概念 :具有某一类共同属性和特性的事物,类一般包含 属性以及方法 1 class Teacher: 2 name="哒哒" 3 age="23" 4 5 def coding(self): # 实例方法(self):意味着这个方法只能实例来调用 6 print(self.name+"会敲代码") 7 8 def cooking(self):#实例方法 9 print(self.na

Python3基础 __repr__ 类的实例对象的名字 可以打印文字

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: class MyClass : def __str__(self) : return "我是MyClass的一个实例" def __repr__(self) : return "这回连print都省了" a=MyClass() result: ==

Python3基础 list(zip()) 将两个列表打包起来

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: numbers=[1,2,3,4,5,6] ind=[0,1,2,3] print(numbers) print(ind) # 前面的在前面 后面的在后面 以前面的数量为基 newNumbers=list(zip(ind,numbers)) print(newNumbers)

一个类有两个类别中,在类别里实现了相同的方法结果?

如果分类和原来类出现同名的方法, 优先调用分类中的方法, 原来类中的方法会被忽略 •  方法调用的优先级(从高到低) ? 分类(最后参与编译的分类优先),只要有分类就优先调用分类,不考虑与主类的编译顺序. 对于类别的相同方法,谁先编译就先调用哪个分类的方法. ********************编译顺序从下到上************************** bv

Python3基础 A类作为B类的实例变量

? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdown ? code """ @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ cl

当一个控制器中有两个scrollview,可以在不用多线程的条件下同时执行

self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];