类之属性查找

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不是一个对象恰恰self默认接受对象,此时寻找Name方法找不到        print(‘吃吃吃‘)    def sleep(self, x):        print(x)        print(‘睡睡睡‘)stu1 = Luffy(‘王二丫‘, ‘20‘, ‘女‘)stu2 = Luffy(‘张铁蛋‘, ‘38‘, ‘男‘)stu3 = Luffy(‘理三炮‘, ‘48‘, ‘男‘)#类的数据属性是所有对象共有的  如下,打印他们的id均一致print(Luffy.school, id(Luffy.school))print(stu1.school, id(stu1.school))print(stu2.school, id(stu2.school))print(stu3.school, id(stu3.school))

#什么是对象:相同的技能与特征的结合体#什么是对象:一系列对象有相似的特征与技能的结合体

#其中类的函数属性是:绑定给对象,绑定不同的对象,是绑定有不同的方法,对象绑定调用方式时,会把对象本身作为第一个参数传入进去#Luffy.eat(123)  #’123‘传给了’self‘这样可以调用,但是:请看上边的相应的函数

stu1.sleep(111)  #此时默认把stu1本身给了self,111给了’x’详见:上面对应的函数sleep#如果对象和类里面有着相同的名字怎么办?stu1.x = ‘from stu1‘Luffy.x = ‘from Luffy‘print(stu1.x)#会先从自己的对象内部找x如果找不到会去类或者父类里面找但是不会去全局找#如果对象内部和类里面都没有就会报错

原文地址:https://www.cnblogs.com/yuexijun/p/10230846.html

时间: 2024-11-02 14:11:44

类之属性查找的相关文章

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): prin

类的属性查找

一.单继承下的属性查找 现在子类中找,子类没有到父类找 实例一. 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

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",包括类,类的实例,数字,模块