java初入python的一些不适

写在前面

作为一个更喜欢Java这种强语言的菜鸡,写python都是过程式编程,全然放弃了Java中熟悉的OOP,这怎么能行呢,做测试,看博客,遂有了这篇文章,仅记自己掉的小坑。


对象实例化

问题

与Java提倡一个文件写一个类(内部类等不在本次讨论范围内),文件名与类名一致不同,python一个文件可以写若干个类,类与文件名理所当然可以保持不一致了。然而就在我习惯性的在一个文件中写下类,在另一个文件import调用时,就出现问题了。

# Hello.py
class Hello:
    def __init__(self):
        print("hello")
# run.py
import Hello
if __name__ == "__main__":
	c = Hello()

但是,上述代码就报在我的一脸懵逼中报错了

TypeError: 'module' object is not callable

额,这是什么情况,难道python的对象实例化不是这么玩的吗?我Java这样完全没有问题啊

解决

Python中文件相当于一个模块,通过模块可以访问其中的类和方法,在非本文件中使用类和方法是,不能省略文件名,所以下述两种形式都可以:

# 第一种
import Hello
if __name__ == "__main__":
	c = Hello.Hello()
	
# 第二种
from Hello import Hello
if __name__ == "__main__":
	c = Hello()

综上,感觉文件还是别跟类名一样了,好容易混淆啊。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值