面向对象编程(一)创建类,实例化,属性引用
来源:互联网 发布:tom围棋 mac 编辑:程序博客网 时间:2024/06/16 03:42
在python中,用变量表示特征,用函数表示技能,因而类是变量与函数的结合体,对象是变量与方法(指向类的函数)的结合体。
class 类名:#定义一个类 类体
类有两种作用:属性引用和实例化
t=类名()#实例化
类名加括号就是实例化,会自动触发__init__函数的运行,可以用它来为每个实例定制自己的特征
class 类名: def __init__(self,x):#self的作用是在实例化时自动将对象/实例本身传给__init__的第一个参数,self可以是任意名字 self.x=x #给__init__的第一个参数,self可以是任意名字t=类名(特征)数据调用
class 类名: w=1 def __init__(self,x): self.x=x def foo(self): print('foo')t=类名(参数)t.w=1#调用变量t.foo()#调用函数
对象/实例本身只有数据属性,但是python的class机制会将类的函数绑定到对象上,称为对象的方法,或者叫绑定方法,绑定方法唯一绑定一个对象,同一个类的方法绑定到不同的对象上,属于不同的方法,内存地址都不会一样。
对象的绑定方法的特别之处在于:obj.func()会把obj传给func的第一个参数。
==========================
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性
而类有两种属性:数据属性和函数属性。其中类的数据属性是共享给所有对象的,而类的函数属性是绑定到所有对象的。
class Star: x=1 def __init__(self,name): self.name=name def foo(self): return 'foo from {} '.format(self.name)tom=Star('tom')jack=Star('jack')print(tom.x,id(tom.x))#1 内存地址1763226688print(jack.x,id(jack.x))#1 内存地址1763226688print(tom.foo(),tom.foo) # foo from tom <bound method Star.foo of <__main__.Star object at 0x000001DD163FD588>>print(jack.foo(),jack.foo) #foo from jack <bound method Star.foo of <__main__.Star object at 0x000001DD163FD5C0>>
创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性。
在obj.name会先从obj自己的名称空间里找name,找不到则去类中找,类也找不到就找父类...最后都找不到就抛出异常
print(tom.__dict__)#{'name': 'tom'}print(jack.__dict__)#{'name': 'jack'}print(Star.__dict__)#{'__module__': '__main__', 'x': 1,# '__init__': <function Star.__init__ at 0x000001FCEB7BB8C8>, # 'foo': <function Star.foo at 0x000001FCEB7BB950>, # '__dict__': <attribute '__dict__' of 'Star' objects>, # '__weakref__': <attribute '__weakref__' of 'Star' objects>,
#'__doc__': None}
阅读全文
0 0
- 面向对象编程(一)创建类,实例化,属性引用
- Python 面向对象编程基础(定义类并创建实例、创建实例属性、初始化实例属性、访问限制、类属性、属性名冲突、实例方法、类方法)
- Python面向对象编程(创建实例属性,初始化实例属性,访问限制(__xxx))
- 7面向对象编程--->实例属性和类属性
- 01-php面向对象创建类,实例化对象,调用对象的属性
- PHP面向对象编程--类的创建和对象实例化(类、对象、模块化、抽象)
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
- 自学Python day6--------面向对象编程(实例属性和类属性)
- python3面向对象编程一(类)
- Python面向对象编程(类和实例 访问限制 继承和多态 获取对象信息 实例属性和类属性)
- 面向对象(一):对象属性
- 面向对象(一):对象属性
- 面向对象编程(一)
- 面向对象编程(一)
- 面向对象编程实例
- 面向对象实例编程
- javascript面向对象(一)-创建对象
- 理解面向对象编程(一)-类和对象
- 使用you-get 下载视频
- mysql实现主从复制
- fastText具体代码实现过程
- UVA10341 二分枚举解方程
- GitHub基本命令汇总
- 面向对象编程(一)创建类,实例化,属性引用
- 理解WebKit和Chromium: WebKit和Chromium组成
- 并查集模板
- 2017西安交大ACM小学期数据结构 [树状数组]
- 【设计模式】创建型模式总结
- poj1979 Red and Black
- 链表的反转问题
- Java怎么实现从控制台输入
- 面向对象