Python创建类的时候,加()和不加有什么区别、联系?
在Python中定义类class的时候,可以加上():
class Employee():
"""这里是Employee的__doc__"""
empCount = 0
__name1 = 'safety'
def __init__(self,name,salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def display_count(self):
print('Totall employee count:{}'.format(Employee.empCount))
def display_employee(self):
print('Name:{}, Salary:{}'.format(self.name, self.salary))
也可以不加上():
class Employee:
"""这里是Employee的__doc__"""
empCount = 0
__name1 = 'safety'
def __init__(self,name,salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def display_count(self):
print('Totall employee count:{}'.format(Employee.empCount))
def display_employee(self):
print('Name:{}, Salary:{}'.format(self.name, self.salary))
目前我观察的结果是:二者没有区别;实际上它们有无区别呢?如果真的没有区别,那么哪种写法是正确的?我在《Python基础教程》中看到的是不加括号。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
事实上是没有区别的,以下三种写法是等价的
不需要继承类的话,可加可不加
不加括号的,或者加括号未继承其他类的是经典类(旧式类) ,加括号继承其他类或者Object的是新式类
python3中都是新式类
在《流畅的python》中第一章第3页有一个类是这样的:
然后,在第 6 页的页脚有这样的一个注释:
可以不写吧,这个的区别并不是很大,主要是带括号的这个类很有可能会用来作为继承的操作,所以会加上,但是普通情况下是没有区别的
以下是在有括号而没有继承的情况下IDE的提示:
可以看到没有继承的情况下类上写了括号会被IDE当做多余的符号......