079 类的属性查找

类的属性查找

  • 先从对象自己的名称空间找,没有则取类里找,如果类里也没有则程序报错
class Student1:
    # 定义类的相同属性
    school = 'xiwangzhongxue'
    count = 0
    aaa = 10

    # 定义类的相同方法
    # 定义类的属性方法
    def __init__(self,name,age):
        self.name = name
        self.age = age

        Student.count += 1
        self.aaa = 1

    def choice(self):
        print('选课...')

    def study(self):
        print('学习....')
print(Student.count)

0

stu1 = Student('小明',18)
print(stu1.count)

1

stu2 = Student('小红',20)
print(stu2.count)

2

print(Student.count)

2

print(stu1.name)

小明

  • 由于count += 1时修改的类的属性,类的属性count已经被修改为2,所以其他实例对象的count属性都为2
print(stu1.count)
print(stu2.count)

2

2

  • 由于aaa是每个实例的私有属性,因此所有的实例对象都会用自己私有的aaa,不会用类的aaa
print(stu1.__dict__)

{‘name‘: ‘小明‘, ‘age‘: 18, ‘aaa‘: 1}

print(stu2.__dict__)

{‘name‘: ‘小红‘, ‘age‘: 20, ‘aaa‘: 1}

原文地址:https://www.cnblogs.com/xichenHome/p/11414723.html

时间: 2024-11-01 09:53:42

079 类的属性查找的相关文章

类的属性查找

一.单继承下的属性查找 现在子类中找,子类没有到父类找 实例一. class Foo:    def f1(self):        print('Foo.f1')?    def f2(self):        print('Foo.f2')        self.f1() # obj.f1()?class Bar(Foo):    def f1(self):        print('Bar.f1')?obj=Bar()obj.f2()?# 终端Foo.f2Bar.f1 实例二. c

python类对象属性查找原理

class Foo(object): def __init__(self): # 这是一个对象属性 self.obj_pro = 12 # 这是一类属性 c_pro = 11 # 这是一个静态方法 @classmethod def c_method(self): print('c_method') if __name__ == '__main__': f = Foo() """ 如何查找对象属性? 就是在对象的__dict__字典去找,对象__dict__找不到,再去类__d

类之属性查找

class Luffy: school = 'luffy' def __init__(self, name, age, sex):#self== Luffy.__init__('王二丫', '20', '女') self.Name = name self.Age = age self.Sex = sex def lear(self): print('学学学') def eat(self): print('这是数字%s' % self.Name)#下边传入一个参数123但是123不是一个对象恰恰s

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了

Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';   reg.RegEx  := '\d';   if reg.Match then     ShowMessage('找到了')   else     ShowMessage('

继承1.继承,2.属性查找顺序3.子类访问父类内容4.补充,经典类与新式类 --------- # 21

继承: 1.继承 1.1继承 1 '''''' 2 """ 3 1.什么是继承? 4 继承是描述两个对象之间,什么是什么的关系 5 6 案例:麦兜,佩奇,猪刚鬓 -- 都是猪 7 8 在程序中,继承描述的是类和类之间的关系 9 10 例如:a 继承 b,a就能直接使用b已经存在的方法或属性 11 此时,a称之为子类,b被称之为父类,也称为基类 12 13 2.为什么要使用继承? 14 继承的一方制剂使用另一方已经有的东西 15 其目的是:提高重用性(重用已有的代码) 16 1

python属性查找

python中执行obj.attr时,将调用特殊方法obj.__getattribute__('attr'),该方法执行搜索来查找该属性,通常涉及检查特性.查找实例字典.查找类字典以及搜索基类.如果搜索过程失败,最终会尝试调用类的__getattr__()方法.如果这也失败,则抛出AttributeError异常. 具体步骤如下: 1.如果attr是个特殊属性(例如python提供的),直接返回. 2.在obj.__class__.__dict__即类字典中查找attr,如果attr是个data

python3 类的属性、方法、封装、继承及小实例

Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. python类与c++类相似,提供了类的封装,继承.多继承,构造函数.析构函数. 在python3中,所有类最顶层父类都是object类,与java类似,如果定义类的时候没有写出父类,则object类就是其直接父类. 类定义 类定义语法格式如下: class ClassName:    <statem

python属性查找(attribute lookup)

在Python中,属性查找(attribute lookup)是比较复杂的,特别是涉及到描述符descriptor的时候. 在上一文章末尾,给出了一段代码,就涉及到descriptor与attribute lookup的问题.而get系列函数(__get__, __getattr__, __getattribute__) 也很容易搞晕,本文就这些问题简单总结一下. 首先,我们知道: python中一切都是对象,"everything is object",包括类,类的实例,数字,模块