GIS Eden
Discover the beauty of GIS
Δ
class Human(): def __init__(self,shenggao,sing,name): self.shenggao=shenggao self.sing=sing self.name=name
def runName(self): print(‘i am name’+self.name)
caixukun=Human(1.68,’rap’,’caixukun’) caixukun.runName()
yaoming=Human(2.23,’lanqiu’,’yaoming’) yaoming.runName() 请教一下以上代码如何更改后会执行身高?
shenggao是一个属性,引用的话caixukun=Human(1.68,’rap’,’caixukun’) caixukun.shengao就可以了
def runShenggap(self): print(‘i am shenggao’+self.shenggao)
caixukun=Human(1.68,’rap’,’caixukun’) caixukun.shenggao
yaoming=Human(2.23,’lanqiu’,’yaoming’) yaoming.shenggao 是这样吗?为什么执行后显示如下: C:\Users\Administrator\Desktop>py -3 class.py
C:\Users\Administrator\Desktop>
你最后输出一下看看,print(yaoming.shenggao),你什么动作都没有,当然没反应了
明白了,是实例化和属性引用两种操作。谢谢!
对了,注意你的代码一定要进行严格代码对齐,类下面和函数内都要缩进对齐
代码对齐问题是复制的原因,还是谢谢提醒。
你代码里面好多单引号是中文字符,代码缩进也有点问题,如果想打印身高,建议改成这样: class Human(): def __init__(self,shengao,sing,name): self.shengao=shengao self.sing=sing self.name=name
def runName(self): print(‘My name is ‘+self.name)
def runShengao(self): print(‘%s is %s meters tall’%(self.name,self.shengao))
caixukun=Human(1.84,’rap’,’caixukun’) caixukun.runName() caixukun.runShengao()
yaoming=Human(2.26,’lanqiu’,’yaoming’) yaoming.runName() yaoming.runShengao()
输出结果为: My name is caixukun caixukun is 1.68 meters tall My name is yaoming yaoming is 2.23 meters tall
输出结果身高修改下: My name is caixukun caixukun is 1.84 meters tall My name is yaoming yaoming is 2.26 meters tall
不好意思,身高忘记修改了
我按一个tab键怎么是八位那,记得老师说是两位
一个tab四位。
ctrl+alt+s不出界面啊,咋回事
你想出什么界面,这是什么鬼,ctrl+alt+s是什么
ctrl+alt+s 百度查的修改tab键的。我按一个tab不知怎么是八位了,原来还是四位着
这个我不知道有这个快捷键
shift+win+S,截屏
class Human(): def __init__(self,shengao,sing,name): self.shenggao=shengao self.sing=sing self.name=name
def runSing(self): print(‘i am sing ‘+self.sing)
caixukun=Human(1.68,’rap’,’caixukun’) caixukun.runSing()
yaoming=Human(2.23,’lanqiu’,’yaoming’) yaoming.runSing() 报错说制表符和空格不一致
你的严格对齐那,我的代码你复制后再试试
复制老师代码没问题,自己写的报错说制表符和空格不对。我用的空格键,因tab键按一次是八位
缩进用tab或四个空格,你tab键八个空格也问题不大
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去: __init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。 有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去: 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
class Human():
def __init__(self,shenggao,sing,name):
self.shenggao=shenggao
self.sing=sing
self.name=name
def runName(self):
print(‘i am name’+self.name)
caixukun=Human(1.68,’rap’,’caixukun’)
caixukun.runName()
yaoming=Human(2.23,’lanqiu’,’yaoming’)
yaoming.runName()
请教一下以上代码如何更改后会执行身高?
shenggao是一个属性,引用的话caixukun=Human(1.68,’rap’,’caixukun’)
caixukun.shengao就可以了
class Human():
def __init__(self,shenggao,sing,name):
self.shenggao=shenggao
self.sing=sing
self.name=name
def runShenggap(self):
print(‘i am shenggao’+self.shenggao)
caixukun=Human(1.68,’rap’,’caixukun’)
caixukun.shenggao
yaoming=Human(2.23,’lanqiu’,’yaoming’)
yaoming.shenggao
是这样吗?为什么执行后显示如下:
C:\Users\Administrator\Desktop>py -3 class.py
C:\Users\Administrator\Desktop>
你最后输出一下看看,print(yaoming.shenggao),你什么动作都没有,当然没反应了
明白了,是实例化和属性引用两种操作。谢谢!
对了,注意你的代码一定要进行严格代码对齐,类下面和函数内都要缩进对齐
代码对齐问题是复制的原因,还是谢谢提醒。
你代码里面好多单引号是中文字符,代码缩进也有点问题,如果想打印身高,建议改成这样:
class Human():
def __init__(self,shengao,sing,name):
self.shengao=shengao
self.sing=sing
self.name=name
def runName(self):
print(‘My name is ‘+self.name)
def runShengao(self):
print(‘%s is %s meters tall’%(self.name,self.shengao))
caixukun=Human(1.84,’rap’,’caixukun’)
caixukun.runName()
caixukun.runShengao()
yaoming=Human(2.26,’lanqiu’,’yaoming’)
yaoming.runName()
yaoming.runShengao()
输出结果为:
My name is caixukun
caixukun is 1.68 meters tall
My name is yaoming
yaoming is 2.23 meters tall
输出结果身高修改下:
My name is caixukun
caixukun is 1.84 meters tall
My name is yaoming
yaoming is 2.26 meters tall
不好意思,身高忘记修改了
输出结果身高修改下:
My name is caixukun
caixukun is 1.84 meters tall
My name is yaoming
yaoming is 2.26 meters tall
我按一个tab键怎么是八位那,记得老师说是两位
一个tab四位。
ctrl+alt+s不出界面啊,咋回事
你想出什么界面,这是什么鬼,ctrl+alt+s是什么
ctrl+alt+s 百度查的修改tab键的。我按一个tab不知怎么是八位了,原来还是四位着
这个我不知道有这个快捷键
shift+win+S,截屏
class Human():
def __init__(self,shengao,sing,name):
self.shenggao=shengao
self.sing=sing
self.name=name
def runSing(self):
print(‘i am sing ‘+self.sing)
caixukun=Human(1.68,’rap’,’caixukun’)
caixukun.runSing()
yaoming=Human(2.23,’lanqiu’,’yaoming’)
yaoming.runSing()
报错说制表符和空格不一致
你的严格对齐那,我的代码你复制后再试试
复制老师代码没问题,自己写的报错说制表符和空格不对。我用的空格键,因tab键按一次是八位
缩进用tab或四个空格,你tab键八个空格也问题不大
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:
__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:
和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。