Python学习问题记录
Posted btxg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习问题记录相关的知识,希望对你有一定的参考价值。
在学习Python的是后遇到点小问题,记录下来以后忘了再来看看。
一. python2 和python3在继承父类的时候是不同的。super() 是一个特殊的函数,帮助Python将父类和子类关联起来。在Python3中,直接使用如下代码:
Python3
class Father():
def __init__(self,make,kkk,aaa)
~~snip~~
class Son(Father):
super().__init__(make,kkk,aaa)
在Python2中有两种方法:
第一种
class Father():
def __init__(self,make,kkk,aaa)
~~snip~~
class Son(Father):
super(son,self).__init__(make,kkk,aaa)
第二种
class Father():
def __init__(self,make,kkk,aaa)
~~snip~~
class Son(Father):
Father.__init__(self,make,kkk,aaa) # 注意此处参数含self
二. 在运行过程中还遇到了一个问题。
遇到如下的报错,上网查询发现是调用对象函数的时候没有加 () .
<bound method ElectricCar.get_descriptive_name of <__main__.ElectricCar object at 0x0000000003200A90>>
?
如下:
#encoding=utf-8
class Car(object):
def __init__(self,make,model,year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = str(self.year) + ‘ ‘ + self.make + ‘ ‘ + self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("This car has " + str(self.odometer_reading) + " miles o it.")
def update_odometer(self,mileage):
"""将里程表读数设置成指定的值"""
self.odometer_reading = mileage
class ElectricCar(Car): #继承Car的类
def __init__(self,make,model,year):
"""初始化父类的属性"""
super(ElectricCar,self).__init__(make,model,year)
my_tesla = ElectricCar(‘tesla‘,‘model s‘,‘2016‘)
print(my_tesla.get_descriptive_name)
加了括号后就运行正常了。
在最后一行:print(my_tesla.get_descriptive_name)改为
print(my_tesla.get_descriptive_name()) 就解决问题了。
以上是关于Python学习问题记录的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段