美文网首页
属性和方法

属性和方法

作者: 大冰S | 来源:发表于2019-12-01 17:51 被阅读0次

属性和方法

class PyClass:
... lesson = 'python'
... def init(self, name):
... self.name = name
...
PyClass.lesson
'python'

lesson 被称作类属性也叫做静态属性,可以通过类名调用

PyClass.book = 'learn python'
dir(PyClass)
['class', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref', 'book', 'lesson']

类属性可以被创建

name 被称作实例属性

p = PyClass('su')
dir(p)
['class', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref', 'book', 'lesson', 'name']

修改实例属性不会影响类属性,也不会影响其他实例的同名属性的值

p.book = 'learn java'
p.book
'learn java'
del p.book
p.book
'learn python'
del p.book
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: book
del PyClass.book
del p.book
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: book

类属性和示例属性

方法

方法和函数

相同

  • 使用关键词def
  • 使用return语句(除init方法除外)

不同

  • 方法必须写在类中
  • 方法的第一个参数必须是self

参数self引用了实例

class Foo:
... def method(self, x):
... return x**2
...
f = Foo()
f.method(2)
4
Foo.method(f,3)
9
Foo.method(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: method() missing 1 required positional argument: 'x'

实例调用方法时默认隐式传入了实例对象作为第一个参数
类对象调用方法时,需传入第一个实例对象参数

相关文章

  • 对象

    拥有一些属性拥有一些方法的这样一个集合 创建对象 属性和方法 增加属性和方法 修改属性和方法 删除属性和方法 ob...

  • 构造函数ES5和ES6对比

    封装: 1、通过构造函数添加属性和方法(即:通过this定义属性和方法) 缺点:通过this定义的属性和方法,我们...

  • 属性和方法

    1、属性 存储属性 延迟存储属性 计算属性 只读计算属性 只有 getter 方法但没有 setter 方法的计算...

  • 属性和方法

    属性和方法 class PyClass:... lesson = 'python'... def ...

  • ES5、ES6继承

    ES5、ES6继承方式 继承的目标: 父类公有属性和方法为子类公有属性和方法父类私有属性和方法为子类私有属性和方法...

  • JavaScript基础知识点--event对象常用属性和方法

    event常用属性和方法 常用属性和方法表 属性或方法说明type事件的类型srcElement/target事件...

  • iOS:用delegate调用属性和方法,添加属性和方法

    delegate 本质为类增加属性和方法,可以用delegate调用未知对象的属性和方法,为已知对象添加属性和方法...

  • 关于构造函数中this和prototype定义的属性和方法的不同

    this定义的属性和方法,是生成的每个实例有属于自己的属性和方法; prototype定义的属性和方法,是每个实例...

  • 原型继承

    一、原型判断方法*术语解释:成员=属性+方法实例成员:实例属性和实例方法原型成员:原型对象属性和原型对象方法1、原...

  • UI基础篇-UITableView

    1.常用属性和方法 2代理方法 3.UITableViewCell常用属性和方法

网友评论

      本文标题:属性和方法

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