免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4163 | 回复: 16
打印 上一主题 下一主题

对Python有个大大的疑问! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-28 15:26 |只看该作者 |倒序浏览
PYTHON其他都好,
既然PYTHON是脚本语言,个人以为
1.为什么 python的语法要以缩进呢?

好像这样不好吧,语法太严格,没有灵活性.
我是PHP刚转过来的,PYTHON开发WEB时怎么套模板啊,语法太严格好像不是好事哦.
不像PHP本身就是模板语言.
PYTHON是怎么套模板的呢?

2.类定义时为什么一定要传个self啊,并且还默认实例化的时候帮你传了,真晕.
不知道为什么要这么设计啊.

论坛徽章:
0
2 [报告]
发表于 2008-07-28 16:22 |只看该作者
就是这样设计的,这得问作者去了。

论坛徽章:
0
3 [报告]
发表于 2008-07-28 16:24 |只看该作者
1.为什么 python的语法要以缩进呢?
在C语言中,有多种风格的缩进方式,如下所示:
int main()
{
   if (1 < 2) {
       printf("true");
   } else {
       printf("false");
   }
}

int main()
{
   if (1 < 2)
     {
       printf("true");
     }
   else
     {
       printf("false");
     }
}


python中只有一种,易于交流:
def main():
    if 1 < 2:
       printf("true")
    else:
       printf("false")


另外对于下面的嵌套if语句来说,else的对应if语句是一目了然的。
def main():
    if a < b:
        if b < c:
            pass
    else:
        pass


2.类定义时为什么一定要传个self啊,并且还默认实例化的时候帮你传了,真晕.
python中的局部变量是不需要声明就可以使用,因此必须通过self引用成员变量,否则python无法区分一个变量是局部变量还是成员变量,在下例中:

  1. class Foo:
  2.     def __init__():
  3.         bar = 123
复制代码

如果可以直接引用成员变量,那么在__init__方法中,变量bar究竟是局部变量还是成员变量?[

PS:很多人使用python的explicit哲学解释这个问题,并建议python设计者去掉显示的self,实际上,由于python中局部变量是不需要声明的这一特性,python不可能去掉那个看上去仿佛是多余的self。

[ 本帖最后由 cplusplus2008 于 2008-7-28 16:27 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-07-28 16:40 |只看该作者
难道你写php时候不缩进?

py只是严格的让你养成这个好习惯,所以不管什么样的py代码,至少第一眼看上去很整齐,如果都是乱七八糟的,相信你自己都看不下去了。

self也只是习惯上的,呵呵,可以声明类内部变量。如果你方法没有的话也一样用哦。

论坛徽章:
0
5 [报告]
发表于 2008-07-28 17:01 |只看该作者
原帖由 xiaoyu9805119 于 2008-7-28 16:40 发表
难道你写php时候不缩进?

py只是严格的让你养成这个好习惯,所以不管什么样的py代码,至少第一眼看上去很整齐,如果都是乱七八糟的,相信你自己都看不下去了。

self也只是习惯上的,呵呵,可以声明类内部 ...


这个确实很好,不过
想知道Python是怎么套模板啊!
PHP嵌入HTML就这样
<?=$varname1?>

还有,对于self这个关键字,刚刚学有点转不过来吧.呵呵.

[ 本帖最后由 ^-^ 于 2008-7-28 17:02 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-07-28 17:04 |只看该作者
我对Python缩进的分段方式也存怀疑态度;
self嘛,确实很麻烦,也让人费解……

论坛徽章:
0
7 [报告]
发表于 2008-07-28 17:06 |只看该作者
原帖由 cplusplus2008 于 2008-7-28 16:24 发表
1.为什么 python的语法要以缩进呢?
在C语言中,有多种风格的缩进方式,如下所示:




python中只有一种,易于交流:


另外对于下面的嵌套if语句来说,else的对应if语句是一目了然的。


2.类定义 ...

谢谢楼上的回答,贴了这么多,向你学习.
对于PYTHON的缩进还是比较感冒,好像不容易嵌入HTML.
对于self刚学,还是有点转不过来.
个人觉得还是去掉比较好,看着舒服点,
类实例化时,又不需要传self觉得晕.呵呵.

论坛徽章:
0
8 [报告]
发表于 2008-07-28 17:08 |只看该作者
原帖由 dreamerx2004 于 2008-7-28 17:04 发表
我对Python缩进的分段方式也存怀疑态度;
self嘛,确实很麻烦,也让人费解……


顶,
还好,有个同样观点的.

论坛徽章:
0
9 [报告]
发表于 2008-07-28 17:18 |只看该作者
原帖由 limodou 于 2008-7-28 16:22 发表
就是这样设计的,这得问作者去了。

貌似这位帅哥没有回答我的问题.

了解了RUBY,纯面向对象,个人不喜欢.
毕竟个人觉得面向对象的思想有其局限性.
加上PYTHON丰富的类库
所以选择了PYTHON.
看了LUA,好像在夹缝中生存.上不如PYTHON,下不如C/c++,感觉晕晕滴.
呵呵,不知道我的观点对波?
欢迎拍砖.

论坛徽章:
6
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:582015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2008-07-28 20:39 |只看该作者
python也是纯OO的
Lua(楼上LUA的可能是指这个,名字大小写不能变的 )其实还是不错的,可以嵌入其他语言,取长补短,个人以为没有夹缝求生存的说法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP