欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 函数 class 属性 方法的应用 有大用

shiping1 的头像
class _Engine(object):

    def __init__(self, connect):
        self._connect = connect

    def connect(self):
        return self._connect()
请问 self的_connect()
方法是哪里来的 
是不是继承自obejct的
三日成晶(116884230)  21:17:47
,你不是自己定义了么?
 
 
史文远(958186957)  21:26:09
_connect() 这个方法 我没有定义啊
 
 票贩子(173300430)  21:26:20

三日成晶(116884230)  21:26:20
self._connect = connect
 票贩子(173300430)  21:26:25
基本功啊基本功。
三日成晶(116884230)  21:26:29
这不就是
史文远(958186957)  21:27:27
self._connect  这个是属性 不是方法啊
三日成晶(116884230)  21:27:41
...
 票贩子(173300430)  21:27:51
……
三日成晶(116884230)  21:27:53
少年
PreZident(43886887)  21:27:58
基本功啊基本功

 票贩子(173300430)  21:28:11
骚年……
数学里面等量代换
多换两次就晕了?
史文远(958186957)  21:28:39
我看了 廖雪峰的官方网站 里的web 实站 这一句看不懂
 票贩子(173300430)  21:28:59
这算拜师么?
冒. 。o 〇泡(691515082)  21:29:09
属性和方法有区别?
三日成晶(116884230)  21:29:37
一切皆对象,属性和函数是没有区别的
冒. 。o 〇泡(691515082)  21:30:11
方法只是个能call的属性而已
三日成晶(116884230)  21:30:15

史文远(958186957)  21:30:28
是有的  反正 print self._connect() 和打印 print self._connect 值不一样
三日成晶(116884230)  21:30:44
....
冒. 。o 〇泡(691515082)  21:30:46
。。
三日成晶(116884230)  21:30:49
骚年
一样才有鬼了
冒. 。o 〇泡(691515082)  21:31:03
你这俩打印的就不是一个东西
史文远(958186957)  21:31:31
我都弄晕了 
三日成晶(116884230)  21:31:37
昨天问print None的是不是你
史文远(958186957)  21:32:29
不是 我感觉应该把  def connect(self):
        return self._connect()  改成 def connect(self):
    
        return self._connect.connect() 才对
三日成晶(116884230)  21:32:43
....
骚年
 票贩子(173300430)  21:32:50

行了。
这个问题停止吧。
史文远(958186957)  21:33:05
为什么 ?
 票贩子(173300430)  21:33:17
你能达到效果就好了么。
你不有答案了么……
冒. 。o 〇泡(691515082)  21:33:36
去补基础吧
史文远(958186957)  21:33:40
如果 不能理解的话 下次 自写代码 会出错的
 票贩子(173300430)  21:34:07
你这个理解在目前的基础上有困难。
史文远(958186957)  21:34:33
兄弟 推荐一个网址 让我 学习学习
冒. 。o 〇泡(691515082)  21:37:06
你觉得a.b()这句是干什么
三日成晶(116884230)  21:37:12
史文龙啊,你是从哪个语言过来的?
史文远(958186957)  21:37:19
php
a调用 a对象上的方法
冒. 。o 〇泡(691515082)  21:37:55

三日成晶(116884230)  21:38:01
换一种语言,换一个心态
冒. 。o 〇泡(691515082)  21:38:10
这句是说,先找到a对象的b属性,然后调用它
a.b懂不
(a.b)()
 票贩子(173300430)  21:38:44
php上oo用得少。
史文远(958186957)  21:39:07
是的

这句话 看不懂 
三日成晶(116884230)  21:40:07

冒. 。o 〇泡(691515082)  21:40:33

史文远(958186957)  21:40:50
能不能 发代码 不截图 
冒. 。o 〇泡(691515082)  21:40:51
是这样算的
史文远(958186957)  21:41:04
我复制下代码 运行一下看效果 更好理解
三日成晶(116884230)  21:42:14
class testcls:
    def __init__(self, testfunc):
       self.test = testfunc

def testfunc():
    print 'testfunc'

if __name__ == "__main__":
    a = testcls(testfunc)
    a.test()
    print id(a.test)
    print id(testfunc)

史文远(958186957)  21:42:33
谢谢 啦  我zhuo mo  zhuo mo 
 票贩子(173300430)  21:42:38
php也有这玩法。
史文远(958186957)  21:43:14
php 好像参数里 是不能传方法的
冒. 。o 〇泡(691515082)  21:44:32

 票贩子(173300430)  21:44:55
可以的。
三日成晶(116884230)  21:45:45
self.test是成员,他被赋一个testfunc的值
testfunc是一个函数对象,callalbe,就可以test(),不行就会出错
史文远(958186957)  21:48:44

三日成晶(116884230)  21:50:16
>>>print type(a.test)
<type 'function'>
Sparks(312790696)  21:55:10
跟php里的callback一个意思,


数据类型转换

Python内置的常用函数还包括数据类型转换函数,比如int()函数可以把其他数据类型转换为整数:

>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> unicode(100)
u'100'
>>> bool(1)
True
>>> bool('')
False

函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

>>> a = abs # 变量a指向abs函数
>>> a(-1) # 所以也可以通过a调用abs函数
1

测试了一下 似乎有点理解了
普通分类: