print(a.functionA(3))
如果不想使用实例,可以使用staticmethod decorator。
静态方法是方法的一个特例。有时,您编写的代码属于一个类,但它根本不使用对象本身。在
^{pr2}$
另一个选择是使用classmethod decorator。
类方法不是绑定到对象而是绑定到类的方法!在class A(object):
variable_A = 1
variable_B = 2
@classmethod
def functionA(cls,param):
return (param+cls.variable_A)
print(A.functionA(3))
必须首先创建类A的实例class A(object):variable_A = 1variable_B = 2def functionA(self, param):return (param+self.variable_A)a = A()print(a.functionA(3))如果不想使用实例,可以使用staticmethod decorator。静态方法是方法的一个特例。有时,您编写的代码属于...
Python
编写类的时候,每个
函数参数
第一个
参数
都是
self
,一开始我不管它到底是干嘛的,只知道必须要写上。后来对
Python
渐渐熟悉了一点,再回头看
self
的概念,似乎有点弄明白了。
首先明确的是
self
只有在类的方法中才会有,独立的
函数
或方法是不必带有
self
的。
self
在定义类的方法时是必须有的,虽然在调用时不必传入相应的
参数
。
self
名称不是必须的,在
python
中
self
不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗(为了和其他编程语言统一,减少理解难度),不要搞另类,大家会不明白的。
下例中将
self
改为myname一样没有错误:
class Person:
self
的意思是“自己”,表示的是对象自身,当某个对象调用成员方法的时候,
Python
解释器会自动把当前对象作为第1个
参数
传给
self
,用户只需要传递后面的
参数
就可以了。
self
参数
的应用:
#program0706.py
self
参数
的应用
class Animal:
类中未定义构造方法,使用默认的构造方法
def __init__(
self
):
self
.color = color
num = 0 #类的属性
一、
self
参数
在
Python
中,类的方法与普通的
函数
有一个特别的区别——它们必须有一个额外的
第一个
参数
名称,但是在调用这个方法的时候你不为这个
参数
赋值,
Python
会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是
self
。
虽然你可以给这个
参数
任何名称,但是强烈建议你使用
self
这个名称——其他名称都是不赞成你使用的。
使用一个标准的名称有很多优点——你的程序读者可以迅速识别它,如果
在
Python
中,
self
是一个特殊的
参数
,通常作为
第一个
参数
出现在类的方法定义中。
self
代表了实例对象本身,通过
self
可以访问实例对象的属性和方法。
在类中定义方法时,需要使用
self
关键字作为
第一个
参数
。例如:
class MyClass:
def my_method(
self
):
print("Hello, World!")
在上面的示例中,my_method方法有一个名为
self
的
参数
。在实例化对象并调用该方法时,
Python
会将该实例对象自动传递给该方法的
self
参数
。例如:
obj = MyClass()
obj.my_method() # 输出: Hello, World!
此时,
self
参数
将指向obj这个实例对象,通过
self
就可以访问实例对象的属性和方法。