python class函数报错_Python类

创建一个类

class Person:

pass

p = Person()

print(p)

类以class 声明

self变量

这个定义与C++的this指针,都是指向对象示例本身,但使用起来是不一样的。

可以看到函数定义的时候,都要带一个self参数。这是因为python解释器会默认将对象本身作为参数传入函数。比如

```python

class test:

def fun(self):

pass

p = test()

p.fun()

这里p.fun()实际上会被解释成test.fun(p)。所以若是fun没有带self参数,就会被认为传入一个参数到不带参数的函数,从而报错。

3. 名字不一定是self,这只是一种约定俗成的方式

## 实例化对象

与调用函数类似

## 使用对象方法

```python

class Line:

def WhoAmI(self):

print("I am a line class")

p = Line()

p.WhoAmI()

方法与C++类似,不同的是,这里的类的成员函数有一个self参数

init方法

类似于C++的构造函数,在类被实例化的时候调用。

class Line:

x = 0

y = 0

def __init__(self,x ,y):

self.x = x

self.y = y

def showXY(self):

print("x = %d , y = %d " %(self.x,self.y))

def whoAmI(self):

print("I am a line class")

p = Line(1,2)

p.whoAmI()

p.showXY()

私有成员

以双下划线开始命名的成员变量和成员函数为私有的。

class Line:

x = 0

y = 0

__const = 10

def __init__(self,x ,y):

self.x = x

self.y = y

def showXY(self):

print("x =%d, y =%d" %(self.x,self.y))

def whoAmI(self):

print("I am a line class")

p = Line(1,2)

p.whoAmI()

p.showXY()

print(p.x)

print(p.y)

print(p.__const)

这里执行到最后一句时会显示找不到该属性(AttributeError: ‘Line‘ object has no attribute ‘__const‘)

重载、继承

TODO

原文:http://www.cnblogs.com/WeyneChen/p/6670628.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值