美文网首页
杂点总结

杂点总结

作者: 葡萄柚子茶 | 来源:发表于2019-07-18 17:12 被阅读0次

1.在odoo中引用其他模型下的方法

demo = self.env['模型名']
demo.方法名(参数)

通过关联字段连接到另外一个模型

for line in self:
  line.asset_id.方法名(参数)

2.hasattr(object, name)---判断一个对象里面是否有name属性或者name方法

class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no'))  # 没有该属性
#True
#True
#True
#False

object -- 对象。
name -- 字符串,属性名。
如果对象有该属性返回 True,否则返回 False。

3.getattr(object, name[, default])

getattr() 函数用于返回一个对象属性值
object -- 对象。
name -- 字符串,对象属性。
default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

class A(object):
        bar = 1

>>> a = A()
>>> getattr(a, 'bar')        # 获取属性 bar 值
1
>>> getattr(a, 'bar2')       # 属性 bar2 不存在,触发异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'bar2'
>>> getattr(a, 'bar2', 3)    # 属性 bar2 不存在,但设置了默认值
3

4.setattr(object, name, value)

setattr() 函数对应函数 [getattr()],用于设置属性值,该属性不一定是存在的。

>>>class A(object):
        bar = 1

>>> a = A()
>>> getattr(a, 'bar')          # 获取属性 bar 值
1
>>> setattr(a, 'bar', 5)       # 设置属性 bar 值
>>> a.bar
5


>>>class A():
     name = "runoob"
>>> a = A()
>>> setattr(a, "age", 28)
>>> print(a.age)
28
>>>

综合运用

判断一个对象的属性是否存在,若不存在就添加该属性。

class test(): 
      name="xiaohua"
def run(self): 
       return "HelloWord"
 
t=test() 
getattr(t, "age")    #age属性不存在
>>>Traceback (most recent call last): 
File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'age'

getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性
>>>'18'
getattr(t, "age")  #可检测设置成功
>>>'18'

5.写代码遇到的总结点

  • 写修改方法时要判断第一个数字是不是1
  • 代码写注释
  • get('',False)
  • 首先要先判断值是否存在
  • 字段可以重写,实现功能
  • 不能根据自己字段的值应用readonly,必须是a字段可读是因为b字段,不能根据a字段来设置

6.学到的知识点

命名空间是名字到对象映射的结合
MRO方法解析顺序
在对象的命名空间中找不到属性,将在类中查找属性
L(Local)E(Enclosing)G(Global)B(内置)
is --- 比较id值是否相等,是否指向同一个内存地址
== --- 比较值是否相等
= --- 赋值

相关文章

  • 杂点总结

    1.在odoo中引用其他模型下的方法 通过关联字段连接到另外一个模型 2.hasattr(object, name...

  • 杂点

    嗯……有点乱。 谈恋爱这件事太消耗精力,会很快乐,很快之后也有那些所谓五味陈杂的感受吧。嗯,现在觉得累,吧心思专注...

  • 1.opengl入门-纹理

    到这一讲稍微复杂点了,做个阶段性的总结,加深记忆 参考:learnOpenG-纹理 opengl工作流理解:ope...

  • 简单点,复杂点

    初冬来临,赣州这座城市,笼罩着一层层淡雾,来到此地已经有三个月多了,了解了这里四周都是被一座座大山环绕着,夏季...

  • 练字打卡第二天

    一遇到复杂点的字就抓瞎……

  • 数据库知识杂点

    1.如何求最大的或者最小的 select * from A order by id(从小到大排序) desc(逆序...

  • 自嘲

    简单写文字 复杂点赞,忙忙忙​ 多挣几个钻​

  • JVM-04

    复杂点的例子: Java代码如下: 编译 汇编指令如下: 思考题:

  • 掺杂点儿幽默的爱情

    珍惜点滴生活,记录美好~ 一天,我在超市边逛边等老公来接我,过了好久都不见人,发信息也没人回,却看到某人气喘吁吁的...

  • 生活小记:爱情要杂点俗念

    今天跟一位陈先生无意间聊起爱情这个永恒的命题。他坚持成年人的爱情是坦荡的,直接的。不需要遮遮掩掩,也做不到时刻你侬...

网友评论

      本文标题:杂点总结

      本文链接:https://www.haomeiwen.com/subject/dwfrcctx.html