python,关于类和对象的问题
本帖最后由 hhzczy 于 2018-11-30 21:26 编辑class User():
def __init__(self, first_name, last_name, username, email):
self.first_name = first_name
self.last_name = last_name
self.username = username
self.email = email
self.title = self.first_name.title() + self.last_name.title()
def describe_user(self):
print(self.title)
print('Username: ' + self.username)
print('Email: ' + self.email)
def greet_user(self):
print('Welcome ' + self.title + '.')
user1 = User('xueyou', 'zhang', 'ZhangGeShen', 'zxy@123.com')
user1.describe_user()
user1.greet_user()
本楼上边代码已经修改正确,问题已经解决。感谢楼下各位的回复指正
本帖最后由 塔利班 于 2018-11-30 21:07 编辑
1,你的函数都没有加self,那就不是实例对象的函数
2 你可以定义个属性self.title=self.firstname.title() + self.last.name.title()
然后其他调用self.title就行了 小错误不少,改正的:
class User():
def __init__(self, first_name, last_name, username, email):
self.firstname = first_name
self.lastname = last_name
self.username = username
self.email = email
def describe_user(self):
print(self.firstname.title() + self.lastname.title())#可以合并吗?
print('Username: ' + self.username)
print('Email: ' + self.email)
def greet_user(self):
print('Welcome ' + self.firstname.title() + self.lastname.title() + '.') #可以合并吗?
user1 = User('学友', '张', 'ZhangGeShen', 'zxy@123.com')
user1.describe_user() #这行报错 TypeError: describe_user() takes 0 positional arguments but 1 was given
user1.greet_user()
假设这是一行很复杂的代码,我想精简一下合并在一起(比如:在一个方法里写,另一个方法里直接调用,不必重复),如果可以该怎么写?
---写成函数 冬雪雪冬 发表于 2018-11-30 21:07
小错误不少,改正的:
感谢,帖子发出去,我就发现错误了。之前看了半天也没发现,很苦恼。
还是不太熟练。
一楼的帖子我已经修正过了,可以正常运行。
可否劳烦写个函数的范例。
我刚刚对类稍微理出一点点头绪(还有点浆糊)。在类里再加上函数就不知道怎么写了。望提示 hhzczy 发表于 2018-11-30 21:12
感谢,帖子发出去,我就发现错误了。之前看了半天也没发现,很苦恼。
还是不太熟练。
类中的函数,与其他函数没有什么差别,就是注意两点:
1.函数参数加self
2.变量名加self. 塔利班 发表于 2018-11-30 21:04
1,你的函数都没有加self,那就不是实例对象的函数
2 你可以定义个属性self.title=self.firstname.title() ...
非常感谢,问题已经解决。
页:
[1]