设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第49课】 面向对象(3)

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

16#
发表于 2016-3-29 13:11:13 |只看该作者
212121212 发表于 2016-3-29 09:05
self.speed 是什么鬼,self是变量啊,self.speed 这个格式很不理解

self是一个指向实例自身的变量
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

15#
发表于 2016-3-29 09:05:44 |只看该作者
self.speed 是什么鬼,self是变量啊,self.speed 这个格式很不理解
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

14#
发表于 2016-1-28 23:34:32 |只看该作者
的确有些抽象,看了一些别人写的文章也似懂非懂,感觉还是crossin先生这样举一些循序渐进的例子更有助于理解。
回复

使用道具 举报

0

主题

0

好友

558

积分

高级会员

Rank: 4

13#
发表于 2014-9-27 00:05:37 |只看该作者
看了几天的面向对象,好像有一点点懂了,以后更加努力。
学习,纯粹。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

12#
发表于 2014-6-30 17:22:51 |只看该作者
脑子有音乐 发表于 2014-6-28 21:19
class MyClass:
    count = 0
    name = "DefaultName"

申明时,所有类方法的第一个参数必须是 self,这个会指向调用这个方法的对象本身。

调用时不需要你加,指向调用者自身的引用会被自动赋值给这个self
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

36

积分

新手上路

Rank: 1

11#
发表于 2014-6-28 21:19:19 |只看该作者
class MyClass:
    count = 0
    name = "DefaultName"
    def __init__(self,name):
        self.name = name
        print "the class name is: %s\nthe self name is %s"%(MyClass.name,self.name)
    def GetInfo(self,name):
        print "get information by:%s"% (self.name)
        print "get information by:%s"% (name)

p=MyClass("Joan")
p.GetInfo("KK")
---------------------------------------------------
the class name is: DefaultName
the self name is Joan
get information by:Joan
get information by:KK
只有调用__init__对象的变量的时候要加self,其他可以不用加是吗? 这里不是特别懂
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

10#
发表于 2014-6-28 17:02:11 |只看该作者
脑子有音乐 发表于 2014-6-27 16:40
speed是成员变量,这个类的每个实例都会有一个属于自己的speed
drive是成员函数,它要被这个类的实例所调 ...

每辆车都有一个速度的属性(speed),每辆车都有一种驾驶的方法(drive)。驾驶方法里的self是用来指向这辆车本身,这样保证你驾驶的是“这辆车”,而不是其他的车
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

36

积分

新手上路

Rank: 1

9#
发表于 2014-6-27 16:40:50 |只看该作者
crossin先生 发表于 2013-12-2 19:06
speed是成员变量,这个类的每个实例都会有一个属于自己的speed
drive是成员函数,它要被这个类的实例所调 ...

speed是成员变量,这个类的每个实例都会有一个属于自己的speed
drive是成员函数,它要被这个类的实例所调用,self指向的就是这个实例本身
------------------------------------------------------------------
能解释的再通俗点吗?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2013-12-2 19:06:55 |只看该作者
羽扇纶巾 发表于 2013-12-1 23:53
你好! 请问一下

class Car:

speed是成员变量,这个类的每个实例都会有一个属于自己的speed
drive是成员函数,它要被这个类的实例所调用,self指向的就是这个实例本身
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

7#
发表于 2013-12-1 23:53:43 |只看该作者
你好! 请问一下

class Car:
    speed = 0
    def drive(self, distance):
        time = distance / self.speed
        print time

这个类声明的时候,为什么只声明一个变量speed
self在这里的作用又是什么呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-18 14:23 , Processed in 0.029975 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部