Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

python对象

class

1
2
3
class 类名
多个(≥0)类属性...
多个(≥0)类方法...

类属性指的就是包含在类中的变量;而类方法指的是包含类中的函数。

1
2
3
4
5
6
7
class TheFirstDemo:
'''这是一个学习Python定义的第一个类'''
# 下面定义了一个类属性
add = 'http://c.biancheng.net'
# 下面定义了一个say方法
def say(self, content):
print(content)

构造方法

构造方法用于创建对象时使用,创建一个类的实例对象时,解释器都会自动调用它。

1
2
def __init__(self,...):
代码块

必须包含一个名为 self 的参数,且必须作为第一个参数。

1
2
3
4
5
6
7
8
9
10
class TheFirstDemo:
'''这是一个学习Python定义的第一个类'''
#构造方法
def __init__(self):
print("调用构造方法")
# 下面定义了一个类属性
add = 'http://c.biancheng.net'
# 下面定义了一个say方法
def say(self, content):
print(content)

即便不手动为类添加任何构造方法,会自动为类添加一个仅包含 self 参数的构造方法。

__init__() 构造方法中,除了 self 参数外,还可以自定义一些参数,参数之间使用逗号“,”进行分割。

1
2
3
4
5
6
class CLanguage:
'''这是一个学习Python定义的一个类'''
def __init__(self,name,add):
print(name,"的网址为:",add)
#创建 add 对象,并传递参数给构造函数
add = CLanguage("C语言中文网","http://c.biancheng.net")

对象

定义的类只有进行实例化,也就是使用该类创建对象之后,才能得到利用。

  • 访问或修改类对象具有的实例变量,甚至可以添加新的实例变量或者删除已有的实例变量;
  • 调用类对象的方法,包括调用现有的方法,以及给类对象动态添加方法。

给类对象动态添加方法

为 对象动态增加的方法,不会自动将调用者自动绑定到第一个参数。

1
2
3
4
5
6
7
8
# 先定义一个函数
def info(self):
print("---info函数---", self)
# 使用info对clanguage的foo方法赋值(动态绑定方法)
clanguage.foo = info
# Python不会自动将调用者绑定到第一个参数,
# 因此程序需要手动将调用者绑定为第一个参数
clanguage.foo(clanguage)

self 所表示的都是实际调用该方法的对象。

评论