我目前正在阅读和学习Python,并参考了很棒的书#34;学习Python的困难......"。
目前正在进行OOP,面向对象编程。一个练习说:
- 对于每个类,请提供其名称以及它继承的其他类。
- 在此之下,列出它拥有的每个功能及其参数。
- 列出它在self上使用的所有属性。
- 对于每个属性,请提供课程。
醇>
我遇到了最后一个问题。我不太明白。我是一个足智多谋的人,所以我尝试在线搜索无济于事。所以,为什么不这样做,当我的大多数问题都通过在这个网站上搜索获得了很棒的答案。
所以问题4.或者练习4.虽然我们正在努力,但我会感激* 1000 * thanks_for_ex4。如果你能向我解释另外3个。所以我知道我也是这样做的。
答案 0 :(得分:1)
class Employee:
'Common base class for all employees'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
现在让我们解决这些问题
1)对于每个类,给出它的名称以及它继承的其他类。
这个类碰巧不会从另一个类继承。我们也没有另一个继承它的类。例如,如果Employee
的子类是Secretary
(这将是特定类型的员工):
class Secretary(Employee):
# blah blah
2)在此之下,列出它拥有的每个功能及其所采用的参数。
此类中只有两种方法,并且都不采用任何其他参数
def displayCount(self):
def displayEmployee(self):
3)列出它在self上使用的所有属性。
此课程的两个属性是name
和salary
def __init__(self, name, salary):
self.name = name
self.salary = salary
4)对于每个属性,给它一个类。
这两个属性分别为name
和salary
,分别为str
和int
>>> name = 'Bob'
>>> type(name)
<type 'str'>
>>> salary = 50000
>>> type(salary)
<type 'int'>
答案 1 :(得分:1)
python中的每个东西都有一个类型 - 即str(string),int,float等 - 所以:
如果您将类定义为:
class example(object):
def __init__(self):
self.attr1 = 3
self.attr2 = 5.7
self.attr3 = "Hello"
self.attr4 = ["Hello", "Goodbye"]
self.attr5 = {"Greeting":"Hello"}
在这种情况下:
attr1 is of type int
attr2 is of type float
attr3 is of type str
attr5 is of type list
attr6 is of type dict
注意:因为在python中,在分配属性之前不会声明属性的类型,所以只有在该属性获取值时才会确定类型。更改属性的类型也是完全有效的python - 所以你的代码可以这样做:
self.attr3 = 17.6
因此将attr3从str改为float - 这是否是一个好主意是你必须在程序中做出的设计决定 - 提示 - 它可能不是。
注2 - 在实际代码中调用属性attr1到attr6是一个非常糟糕的主意。