Peteryo01223 发表于 2021-2-3 09:23:05

Python: 关于 __init__

本帖最后由 Peteryo01223 于 2021-2-3 09:25 编辑

代码:
class Ticket():
      def __init__(self, weekend=False, child=False):
                self.exp = 100
                if weekend:
                        self.inc = 1.2
                else:
                        self.inc = 1
                if child:
                        self.discount = 0.5
                else:
                        self.discount = 1
      def calcPrice(self, num):
                return self.exp * self.inc * self.discount * num

>>> adult = Ticket()
>>> child = Ticket(child=True)
>>> print("2个成人 + 1个小孩平日票价为:%.2f" % (adult.calcPrice(2) + child.calcPrice(1)))
2个成人 + 1个小孩平日票价为:250.00


问题:
1. self.exp 和 self.inc 是两个 Fish C 随便命名的变量吗?还是在调用 self 语句的预设用法?
2. 用 self 加上一个英文句号‘ .’ 再加 英文字母的用法,为何变为 self_exp = 100 和 self_inc = 1.2 就报错?

谢谢~

qiuyouzhi 发表于 2021-2-3 09:27:20

1,不是,想起什么名就起什么名
2,self. 是在访问这个实例的属性,self_ 就单纯的变成变量了。
建议回去扎实下self用法。

Peteryo01223 发表于 2021-2-3 09:31:20

qiuyouzhi 发表于 2021-2-3 09:27
1,不是,想起什么名就起什么名
2,self. 是在访问这个实例的属性,self_ 就单纯的变成变量了。
建议回去 ...

视频讲的很跳跃,对初学者来说十分费解。水平高,和解释得清楚,是两回事儿。实在看不懂,才在这里提问。

°蓝鲤歌蓝 发表于 2021-2-3 09:38:40

1. exp, inc 是随便命名,但是不建议 ”随便“ 命名, self 是关键字
2. ". " 是大部分编程语言约定俗称的 符号,python里用来调用对象的函数和属性等

qiuyouzhi 发表于 2021-2-3 09:51:07

Peteryo01223 发表于 2021-2-3 09:31
视频讲的很跳跃,对初学者来说十分费解。水平高,和解释得清楚,是两回事儿。实在看不懂,才在这里提问。

?跳跃吗
我觉得还好8
学习速度不要太快,扎实了基础再继续

Peteryo01223 发表于 2021-2-3 10:09:15

°蓝鲤歌蓝 发表于 2021-2-3 09:38
1. exp, inc 是随便命名,但是不建议 ”随便“ 命名, self 是关键字
2. ". " 是大部分编程语言约定俗称的 ...

谢谢

707725585 发表于 2021-2-3 16:45:33

学习
页: [1]
查看完整版本: Python: 关于 __init__