Subscribe
提醒
guest

24 评论
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
PY GISER116
PY GISER116
5 年 之前

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()
请教一下以上代码如何更改后会执行身高?

PY GISER116
PY GISER116
Reply to  tom
5 年 之前

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>

PY GISER116
PY GISER116
Reply to  tom
5 年 之前

明白了,是实例化和属性引用两种操作。谢谢!

PY GISER116
PY GISER116
Reply to  tom
5 年 之前

代码对齐问题是复制的原因,还是谢谢提醒。

PY GISER136
PY GISER136
Reply to  PY GISER116
5 年 之前

你代码里面好多单引号是中文字符,代码缩进也有点问题,如果想打印身高,建议改成这样:
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()

PY GISER136
PY GISER136
Reply to  PY GISER136
5 年 之前

输出结果为:
My name is caixukun
caixukun is 1.68 meters tall
My name is yaoming
yaoming is 2.23 meters tall

PY GISER136
PY GISER136
Reply to  PY GISER136
5 年 之前

输出结果身高修改下:
My name is caixukun
caixukun is 1.84 meters tall
My name is yaoming
yaoming is 2.26 meters tall

PY GISER136
PY GISER136
Reply to  PY GISER136
5 年 之前

不好意思,身高忘记修改了

PY GISER136
PY GISER136
Reply to  PY GISER136
5 年 之前

输出结果身高修改下:
My name is caixukun
caixukun is 1.84 meters tall
My name is yaoming
yaoming is 2.26 meters tall

緈.福滴微笑
緈.福滴微笑
5 年 之前

我按一个tab键怎么是八位那,记得老师说是两位

PY GISER136
PY GISER136
Reply to  緈.福滴微笑
5 年 之前

一个tab四位。

緈.福滴微笑
緈.福滴微笑
5 年 之前

ctrl+alt+s不出界面啊,咋回事

緈.福滴微笑
緈.福滴微笑
Reply to  tom
5 年 之前

ctrl+alt+s 百度查的修改tab键的。我按一个tab不知怎么是八位了,原来还是四位着

PY GISER136
PY GISER136
Reply to  緈.福滴微笑
5 年 之前

shift+win+S,截屏

緈.福滴微笑
緈.福滴微笑
5 年 之前

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()
报错说制表符和空格不一致

緈.福滴微笑
緈.福滴微笑
5 年 之前

复制老师代码没问题,自己写的报错说制表符和空格不对。我用的空格键,因tab键按一次是八位

PY GISER128
PY GISER128
5 年 之前

由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:
__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:
和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。

24
0
交流思想,留下评论.x