关于__init__(self)
class name:def __init__(self,arg):
self.name = arg
def say(self):
print('我的名字是:{}'.format(self.name))
x = name('吉良吉影')
print('我的名字是{}'.format(x))
x.say()
print(type(x))
输出结果是
我的名字是<__main__.name object at 0x000001DB69664C10>
我的名字是吉良吉影
<class '__main__.name'>
1、为什么直接输出x会是<__ma......10>,但是x.say就可以输出字符串,不是都是print吗?还有<__ma......10>是个什么东西?
2、为什么在这里把x.say改成 say(x)会报错? 1. 直接 str(name) 得到的结果就是那样,把第八行改成这样就可以了:
print('我的名字是{}'.format(x.name)) # 访问实例的属性 name
2. 没有定义过叫 say() 的函数,say() 方法在这里是只属于 name 的实例 x 的,所以要先加上 x. 再写 say() “x.say”也可以换成:
name.say(x)
调用x.say时python会自动帮你把前面的对象x填到第一个参数(self)里,这也是为什么每个对象的方法都要加一个参数self
页:
[1]