python中方法和属性之间的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中方法和属性之间的区别相关的知识,希望对你有一定的参考价值。
我正在学习python并对类进行练习。它告诉我将nd属性添加到我的类中,并将方法添加到我的类中。在我阅读练习之前,我一直以为这些都是一样的。两者有什么区别?
答案
术语
心理模型:
根据Python的词汇表:
attribute:与使用虚线表达式按名称引用的对象关联的值。例如,如果对象o具有属性a,则它将被引用为o.a.
method:在类体内定义的函数。如果作为该类实例的属性调用,该方法将获取实例对象作为其第一个参数(通常称为self)。请参阅函数和嵌套范围。
例子
应用于实际代码的术语:
a = 10 # variable
def f(b): # function
return b ** 2
class C:
c = 20 # class attribute
def __init__(self, d): # "dunder" method
self.d = d # instance attribute
def show(self): # method
print(self.c, self.d)
e = C(30)
e.g = 40 # another instance variable
另一答案
方法是属性,但并非所有属性都是方法。例如,如果我们有班级
class MyClass(object):
class_name = 'My Class'
def my_method(self):
print('Hello World!')
这个类有两个属性,class_name
和my_method
。但只有my_method
是一种方法。方法是属于您的对象的函数。所有课程都有其他隐藏属性,但这正是您的练习可能讨论的内容。
另一答案
方法是类中定义的函数。属性是类中定义的实例变量。
例:
class Example(object):
def __init__(self, name):
self.name = name
def hello(self):
print 'Hi, I am ' + self.name
这里hello
是一种方法,而name
是一种属性。
以上是关于python中方法和属性之间的区别的主要内容,如果未能解决你的问题,请参考以下文章