Python定义类的问题
class Turtle:def __init__(self,x):
self.num = x
class Fish:
def __init__(self,x):
self.num = x
class Pool:
def __init__(self,x,y):
self.turtle = Turtle(x)
self.fish = Fish(y)
def print_num(self):
print("乌龟 % 只,小鱼 % 条!"%(self.turtle.num,self.fish.num))
p = Pool(1,10)
>>> p.print_num()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
p.print_num()
File "C:\Users\Avein\Desktop\1.py", line 15, in print_num
print("乌龟 % 只,小鱼 % 条!"%(self.turtle.num,self.fish.num))
ValueError: unsupported format character '?' (0x53ea) at index 5
调用出这个问题,这是小甲鱼39讲里头我照着打的,应该没打错,但不出结果,可以先不管这个,重要的问题是定义类累的时候,里面函数的参数中那个self到底是什么,然后就是定义类的时候类是没有参数这一说的,那么调用类的时候括号中的参数是怎么来的,麻烦各位大佬解释一下原理 self是实例,调用实例的变量就要加self。 第15行代码应该是%d,改成:
print("乌龟 %d 只,小鱼 %d 条!"%(self.turtle.num,self.fish.num)) self 类似于指针this,它可以指向类的成员变量。
初始化需要什么参数,就看__init__ ()括号里面定义了几个参数,self不算在内啊 格式化的时候应该是 %d,不是单单一个 %,应该这样写:
class Turtle:
def __init__(self,x):
self.num = x
class Fish:
def __init__(self,x):
self.num = x
class Pool:
def __init__(self,x,y):
self.turtle = Turtle(x)
self.fish = Fish(y)
def print_num(self):
print("乌龟 % 只,小鱼 % 条!"%(self.turtle.num,self.fish.num))
self 就是类的实例,通过实例访问方法时实例会自动将自己传递进去,不用手动传递。 jkluoling1992 发表于 2020-4-18 17:04
self 类似于指针this,它可以指向类的成员变量。
初始化需要什么参数,就看__init__ ()括号里面定义了几 ...
可以兄弟,我有其他语言的基础,这样一说觉得明白了 czh1303541051 发表于 2020-4-18 17:14
可以兄弟,我有其他语言的基础,这样一说觉得明白了
哈哈哈,明白就好了
页:
[1]