“对于每个属性,给它上课。”

时间:2014-08-22 12:01:43

标签: python python-2.7

我目前正在阅读和学习Python,并参考了很棒的书#34;学习Python的困难......"。

目前正在进行OOP,面向对象编程。一个练习说:

  
      
  1. 对于每个类,请提供其名称以及它继承的其他类。
  2.   
  3. 在此之下,列出它拥有的每个功能及其参数。
  4.   
  5. 列出它在self上使用的所有属性。
  6.   
  7. 对于每个属性,请提供课程。
  8.   

我遇到了最后一个问题。我不太明白。我是一个足智多谋的人,所以我尝试在线搜索无济于事。所以,为什么不这样做,当我的大多数问题都通过在这个网站上搜索获得了很棒的答案。

所以问题4.或者练习4.虽然我们正在努力,但我会感激* 1000 * thanks_for_ex4。如果你能向我解释另外3个。所以我知道我也是这样做的。

2 个答案:

答案 0 :(得分:1)

我从this website

借用了一个示例类
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上使用的所有属性。

此课程的两个属性是namesalary

def __init__(self, name, salary):
    self.name = name
    self.salary = salary
  

4)对于每个属性,给它一个类。

这两个属性分别为namesalary,分别为strint

>>> 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是一个非常糟糕的主意。