博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 类机制
阅读量:6312 次
发布时间:2019-06-22

本文共 1495 字,大约阅读时间需要 4 分钟。

>>> class MyData(object): //类作为名称空间容器 ... pass ... >>> mathObj = MyData() >>> mathObj.x=4 >>> mathObj.y=5 >>> mathObj.x+mathObj.y 9 >>> >>> mathObj.x*mathObj.y 20

self(实例对象)参数自动由解释器传递

类中方法只能通过实例来调用

类中静态变量可以直接使用

实例仅拥有数据属性

在类属性可变的情况下

>>> class Foo(object): ... x = {
2003:'poe2'} ... >>> foo = Foo() >>> foo.x {
2003: 'poe2'} >>> foo.x[2004] = 'valid path' >>> foo.x {
2003: 'poe2', 2004: 'valid path'} >>> Foo.x {
2003: 'poe2', 2004: 'valid path'} >>> del foo.x Traceback (most recent call last): File "
", line 1, in
AttributeError: 'Foo' object attribute 'x' is read-only

绑定方法与非绑定方法

非绑定方法:主要场景是在派生一个子类,而且要覆盖父类的方法,需要调用这个父类中想要覆盖的构造方法
http://blog.sina.com.cn/s/blog_3fe961ae0100kew0.html
http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/

>>> class TestMethod: ... def func(): ... print "hehe" ... >>> test_method = TestMethod() >>> test_method.func() Traceback (most recent call last): File "
", line 1, in
TypeError: func() takes no arguments (1 given) >>> class TestStaticMethod: ... def foo(): ... print 'calling static method foo()' ... foo = staticmethod(foo) ... >>> class TestClassMethod: ... def foo(cls): ... print 'calling class method foo()' ... print 'foo() is part of class:',cls.__name__ ... foo = classmethod(foo) ... >>> >>> >>> >>> Test_foo = TestStaticMethod() >>> Test_foo.foo() calling static method foo()

转载于:https://www.cnblogs.com/moonflow/archive/2012/03/13/2394683.html

你可能感兴趣的文章
eclipse的scala环境搭建
查看>>
UVA465:Overflow
查看>>
HTML5-placeholder属性
查看>>
Android选择本地图片过大程序停止的经历
查看>>
poj 2187:Beauty Contest(旋转卡壳)
查看>>
《Flask Web开发》里的坑
查看>>
Python-库安装
查看>>
Git笔记
查看>>
普通人如何从平庸到优秀,在到卓越
查看>>
SLAM数据集
查看>>
c#学习笔记05——数组&集合
查看>>
【图论算法】Dijstra&BFS
查看>>
注册和上传文件(头像)
查看>>
使用OVS
查看>>
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
vue (v-if show 问题)
查看>>
https基础
查看>>